Advanced Custom Fields (ACF): Ausfüllen als erforderlich definierter Feld wird nicht erzwungen

  • Ich habe mit Advanced Custom Fields (ACF) mehrere neue Felder für die Beitrags-Erstellung geschaffen und davon einige als "erfoderlich" definiert.

    Dies führt aber praktisch nur dazu, daß diese Felder mit einem roten Stern gekennzeichnet sind, aber nicht dazu, daß sich Beiträge erst speichern/veröffentlichen lassen, wenn diese Felder ausgefüllt sind. Nicht einmal eine Fehler-/Warn-Meldung erscheint.

    Besteht eine Möglichkeit das Ausfüllen der als "erforderlich" definierten Felder tatsächlich zu erzwingen?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • erstes Suchergebnis

    Mit welchem Suchbegriff/en denn? -

    Davon abgesehen hilft mir allein das:

    Zitat

    Make sure that you have placed acf_form_head() before get_header()and that your theme includes both wp_head() and wp_footer() calls.

    so nicht wirklich weiter. Da steht ja nicht einmal, um welche Datei/en es geht; außerdem weiß ich nicht, was "calls" im vorliegenden Zusammenhang bedeutet. Ich vermute mal, die index.php ist gemeint.

    Dort ist die erste Zeile nach dem einleitenden Kommentar:

    Code
    get_header(); ?>

    Von "wp_head()" und "wp_footer()" steht in der Datei nichts. - Wo müßte das hin? Und in welcher Form? Nur so oder noch mit

    PHP
    <?php ... ?>

    drumherum? (In der letzten Zeile steht zwar nichts von "wp_footer()", aber "<?php get_footer(); ?>".)

    Wenn ich zunächst einmal "wp_head()" und "wp_footer()" ignoriere und nur

    Code
    acf_form_head()

    in die Zeile vor

    Code
    get_header(); ?>

    setze, bleibt mein Browserfenster weiß, wenn ich versuche, die Webseite aufzurufen. Genauso, wenn ich versuchsweise noch eine php-Anfangs- und Endmarkierung drumherumsetze.

  • Was soll ich nach YouTutorials suchen, wenn ich schon nicht weiß, wonach ich eigentlich suchen soll?! -

    Hilfreich wäre ein Hinweis auf ein empfehlenswertes deutschsprachiges Buch zu php-Grundlagen. (Vor längerer Zeit hatte ich mal WordPress-Themes entwickeln von Cremer/Lambertz gelesen; aber das habe ich heute nicht mehr im Kopf, da ich mich damit nicht regelmäßige beschäftige.)

  • Das hier ist ein WordPress Forum, in dem auf freiwilliger Basis von Privatpersonen und auch Agenturen kostenlose Hilfe zur Selbsthilfe bei Problemen mit WordPress angeboten wird. Vorausgesetzt wird zumindest rudimentäres Basiswissen und grundlegendes Interesse an eigener Weiterbildung.

    Welche Suchbegriffe man wo für irgendwelche Tutorials oder PHP Bücher eingeben könnte, ist hier kein Thema, maximal ein Fall für die Rubrik "Plauderboard".

    Wenn es schon daran scheitert, sollte man - wie bereits empfohlen - keinesfalls mittels blindem Copy & Paste aus Forenbeiträgen an fremden "live" Websites basteln.

    Sinnvoll helfen kann man nur Leuten, die sichTipps und Hinweise zu Herzen zu nehmen, Suchmaschinen damit füttern, lesen, in einem Testblog testen, und schliesslich daraus lernen.

    Aber wenn dann allen Ernstes gefragt wird, was in einem Buch stehen könnte, das man mal irgendwann gelesen aber vergessen hat, ohne das im fraglichen Buch einfach selbst nochmal nachzulesen, dann entsteht der Eindruck, dass es sich gesamt wohl eher um einen Troll handeln dürfte und man seine freiwillige Zeit lieber anderen Benutzern zukommen lassen sollte.

    Viel Erfolg.

  • Lies vielleicht einfach noch mal, was ich tatsächlich geschrieben habe und überleg Dir dann, was darauf eine thematisch passende Antwort wäre. Oder übergeh einfach meine Frage mit Schweigen, wenn Dir die Frage nicht gefällt (ist ja hier in der Tat niemand zum Antworten verpflichtet...).

    Danke schön. :)

  • und nur

    Code
    acf_form_head()

    in die Zeile vor

    Code
    get_header(); ?>

    setze


    da fehlt mindestens ein Semikolon hinter acf_form_head(). Wie gesagt, PHP Grundlagen halt. Wer viel "extra" will, muss eben auch viel extra lernen. Hat ja auch größtenteils nix mit WP zu tun.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Zitat

    da fehlt mindestens ein Semikolon hinter acf_form_head(). Wie gesagt, PHP Grundlagen halt. Wer viel "extra" will, muss eben auch viel extra lernen. Hat ja auch größtenteils nix mit WP zu tun.

    Mit Semikolon dahinter funktioniert die Webseite jedenfalls weiterhin; aber allein dies reicht leider nicht aus, um eine Eingabe in die fraglichen Felder zu erzwingen.

    Zitat

    Wie gesagt, PHP Grundlagen halt. ... Hat ja auch größtenteils nix mit WP zu tun.

    Da WP ja anscheinend u.a. auf PHP aufbaut, ja wohl irgendwie schon...

    Zitat

    Wer viel "extra" will, muss eben auch viel extra lernen.

    Ich schraube halt alle paar Jahre mal an einem Theme herum und lerne dabei manches und behalte auch manches - das muß dann allerdings auch so erklärt sein, daß es meinen begrenzten Vorkenntnissen entspricht. Anderes kann ich einfach nur dankend konsumieren und anwenden.

    Und wenn sich hier anscheinend Leute mit PHP auskennen und vielleicht schon zehn php-Bücher gelesen haben, und den Eindruck haben, daß für meine Fragen php-Kenntnisse hilfreich sind, dann nehme ich - wie gesagt - auch Buchempfehlung gerne entgegen. -

    Und wenn die Antwort auf meine Frage am Anfang des Threads gewesen wäre, daß es keine einfache Lösung gebe, mit der sich das Ausfüllen der Felder wirklich verpflichtend machen läßt, dann wäre auch das eine informative Antwort gewesen. Dann hätte ich mich halt damit abgefunden, daß es nicht 100-prozentig so ist, wie ich es haben möchte.

    Gibt es umgekehrt hier Leute gibt, die eine Antwort parat haben, die ich einfach umsetzen kann, nehme ich sie gerne entgegen. -

    Aber ein Hilfe-Forum benutze ich halt, weil ich eine Frage habe und nicht weiß, wie ich die Antwort anders finden kann - und auch nicht die Absicht habe, ein Informatikstudium zu beginnen.

  • Ich vermute mal, die index.php ist gemeint


    Ich vermute mal, dass die single.php gemeint ist: https://developer.wordpress.org/themes/basics/…visual-overview

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Bringt leider nur das gleiche Ergebnis wie mit der index.php:

    Wenn ich allein

    Code
    acf_form_head();

    in die Zeile vor

    Code
    get_header(); ?>

    setze, richtet es zwar keinen auf den ersten Blick sichtbaren Schaden an; hat aber allein auch nicht den gewünschten Effekt.

    "wp_head()" und "wp_footer()" sind auch in der single.php (von Twenty Sixteen) nicht von Hause aus enthalten - müßte ich also wissen, wie und wo ich das einfügen muß. ---

    Mir kam jetzt allerdings die Idee: Müßte es sich nicht auch eher um eine Datei handeln, die für das back end zuständig ist? Denn es soll ja nicht nur die Anzeige im front end, sondern schon das Speichern verhindert werden, solange die Pflicht-Felder nicht ausgefüllt sind.

  • wp_head() und wp_footer() stehen in der header.php und in der footer.php. Das ist beim Twentysixteen gegeben und spielt hier also keine Rolle.

    Zum Thema: Ich nutze ACF nicht, von daher bin ich raus aus dem Thema. Wahrscheinlich hatte ich oben auch einen Denkfehler. Könnte wieder mal mit dem neuen Gutenberg zusammen hängen: https://support.advancedcustomfields.com/forums/topic/r…tenberg-editor/

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Danke.

    1. Da heißt es am Anfang:

    Zitat

    so far I haven’t been able to coax any field to be required while using the Gutenberg editor (WordPress 5 Beta 4), if the fieldset position is not defined as “normal, below content”.

    Meine Felder sind allerdings ohnehin "Nach dem Inhalt" positioniert - und das Ausfüllen der erforderlichen Felder wird trotzdem nicht erzwungen. (Versuche ich, sie "Nach dem Titel, vor dem Inhalt" zu plazieren, was ich teilweise gerne gemacht hätte, werden sie gar nicht erst angezeigt.)


    2. Am Ende findet sich dort folgender Lösungsvorschlag:

    Zitat

    The solution I came up with as a fix was to use jquery to disable the publish / update button if the forms on the page don’t validate. It’s only briefly tested so I wouldn’t recommend on a production site without testing.

    Make sure that this script is enqueued via file or is in <script> tags in the admin footer on the gutenberg edit page.

    Das verstehe ich aber anscheinend wieder nicht richtig - und scheint ja auch ein bißchen riskant zu sein ("It’s only briefly tested so I wouldn’t recommend on a production site without testing.") Ich habe mich trotzdem ein bißchen umgesehen:

    a) Es gibt in wordpress/wp-admin eine Datei edit.php. Diese endet mit den Zeilen:

    PHP
    <?php>
    include( ABSPATH . 'wp-admin/admin-footer.php' );

    b) Aber ob der dahin soll und wo genau - keine Ahnung; zumal das ja - anders als mein child-Theme mit dem nächsten WP-Update eh überschrieben würde, also nur eine Notlösung von kurzer Dauer wäre.

  • vielleicht meldet sich noch jemand, der ACF nutzt.

    Hast aber Recht, Core Dateien ändert man nicht, dafür gibt es ja die Hooks: https://codex.wordpress.org/Plugin_API/Act…ce/admin_footer

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!