✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So füllen Sie erweiterte Einstellungen für benutzerdefinierte Felder dynamisch aus

5

Mit einigem PHP-Code ist es wirklich einfach, Werte oder Auswahlmöglichkeiten in Advanced Custom Fields (ACF) dynamisch zu füllen. Sie können dies für jede Art von Eingaben tun, einschließlich der Auswahl von Radio, Kontrollkästchen und ähnlichem. In diesem Beitrag sehen wir uns an, wie.

Der Filter

Erweiterte benutzerdefinierte Felder bietet einen Filter namens [acf/load_field](https://www.advancedcustomfields.com/resources/acf-load_field/). Sie können diesen Filter auf verschiedene Arten verwenden. Filtern Sie entweder acf/load_field, um es auf alle Arten von Feldern anzuwenden, oder fügen Sie Code in Ihre Hook-Funktion ein, um herauszufinden, welchen Feldtyp oder Namen Sie möchten. Oder Sie können entweder den Feldtyp (acf/load_field/type=<type>), den Namen (acf/load_field/name=<name>) oder den Schlüssel (acf/load_field/key=<key>) angeben.

Angenommen, wir erstellen ein Textfeld wie folgt:

So füllen Sie erweiterte Einstellungen für benutzerdefinierte Felder dynamisch aus

Wir könnten dies durch acf/load_field/name=dyn_pop_example(zielt nur auf dieses bestimmte Feld ab), acf/load_field/type=text(gilt für alle Felder des Typs Text) oder acf/load_field(gilt für alle Felder eines beliebigen Typs oder Namens) zielen. Wenn Sie die letzten beiden Filter verwenden, können Sie natürlich innerhalb der Funktion nach bestimmten Feldinformationen suchen, z. B. Name. Jedes Feld in ACF erhält ebenfalls einen eindeutigen Schlüssel, aber sie sind versteckt und dienen hauptsächlich der internen Verwendung von ACF.

Der Filter stellt eine Variable bereit; das Feldarray. Dieses Array gibt Ihnen alle Informationen über das aktuelle Feld. Sie ändern einfach die Informationen im Array und geben das geänderte Feld-Array zurück. Je nach Feldtyp unterscheiden sich die Elemente im Array. Zum Beispiel haben Multi-Choice-Feldtypen wie Select und Radioboxen ein Array-Element ‘ choices‘, das Felder zB vom Typ Text nicht haben. Ich empfehle, dass Sie eines var_dump()der bereitgestellten Arrays erstellen, um zu sehen, auf welche Art von Informationen Sie Zugriff haben.

Beginnen wir mit der Untersuchung eines tatsächlichen Codes!

Bevölkerung: einfache Beispiele

Das Festlegen des Standardwerts einer Texteingabe würde in etwa so aussehen:

add_filter('acf/load_field/name=dyn_pop_example', function($field) { $field['default_value'] = __('This is default value', 'txtdomain'); return $field; });

Wir richten unsere Texteingabe auf den Namen dyn_pop_exampleaus und setzen seinen Standardwert (Schlüssel ‘ default_value‘) auf eine Zeichenfolge unserer Wahl. Das Feld wird dann wie folgt gerendert:

So füllen Sie erweiterte Einstellungen für benutzerdefinierte Felder dynamisch aus

Sie können alle Einstellungen für das Feld ändern. Im folgenden Beispiel setzen wir den Platzhalter und die Anweisungen des Textes:

add_filter('acf/load_field/name=dyn_pop_example', function($field) { $field['placeholder'] = __('Type in here', 'txtdomain'); $field['instructions'] = __('Some instructions coming from code', 'txtdomain'); return $field; });

Dadurch wird das Feld wie folgt gerendert:

So füllen Sie erweiterte Einstellungen für benutzerdefinierte Felder dynamisch aus

Füllen Sie Auswahlmöglichkeiten aus

Wenn Sie die Auswahlmöglichkeiten eines Auswahl-, Options- oder Kontrollkästchenfelds dynamisch füllen möchten, tun Sie dies im Array-Schlüsselelement ‘ choices‘. Dieses ‘ choices‘-Element gilt für alle Felder vom Typ Select, Radio und Checkbox.

Das choicesElement „ ” muss ein Array aus Schlüssel-Wert-Paaren sein. Die Schlüssel sind die Werte (die gespeichert werden) und die Werte sind die Bezeichnung, die als Auswahl erscheint.

Angenommen, wir ändern unser Feld in ein select. Sie können die Auswahl leer lassen, da sie über unseren Code festgelegt wird.

So füllen Sie erweiterte Einstellungen für benutzerdefinierte Felder dynamisch aus

Um die Auswahl der Auswahl zu füllen, gehen wir folgendermaßen vor:

Bei line #2 - #6definieren wir einfach eine Reihe von Auswahlmöglichkeiten. Passen Sie dies an Ihre Bedürfnisse an. Bei Zeile #7weisen wir die Auswahl des Feldes unserem Array zu. Zur Sicherheit setzen wir auch den Standardwert des Feldes. Dies ist nicht notwendig – ohne Zeile #8würde die Auswahl einfach automatisch die erste Auswahl im Array (‘rot’) auswählen.

Der obige Code rendert das Feld wie folgt:

So füllen Sie erweiterte Einstellungen für benutzerdefinierte Felder dynamisch aus

Die Auswahl liegt bei Ihnen, Sie müssen sich lediglich darum kümmern, dem ‘ choices‘-Element des Felds ein geeignetes Schlüssel- und Wert-Array bereitzustellen. Als einfaches Beispiel zeigt dieses Codebeispiel, wie Sie ein normales Auswahlfeld in eine Auswahl von Beiträgen umwandeln können.

Das obige Codebeispiel erstellt eine Post-Abfrage, die alle Seiten abruft, und füllt das Auswahl-Array mit Post-IDs als Schlüssel und den Post-Titeln als Werte. Dies ist nur ein Beispiel; Wenn Sie eine Auswahl an Stellen treffen, bietet ACF speziell dafür andere Feldtypen an.

Aufnahmequelle: awhitepixel.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen