WordPress: Holen Sie sich die select-option Feld Entscheidungen im ACF (Advanced Post-Feld) - plugin?
Ich bin jetzt mit Advanced Custom Fields Plugin wordpress.
Und jetzt habe ich definiert einige Wahlen, und Sie haben Entscheidungen, die festlegen, wie unten:
Feld Name: time_availability
Feld-Typ: Wählen Sie
low : Once or twice
high : Several times
So, ich will auflisten, diese Einstellungen im code der Seite, wie rendering:
<ul>
<li><input type="radio" name="low" /> Once or twice</li>
<li><input type="radio" name="high" /> Several times</li>
</ul>
Wie bekomme ich die Auswahl?
Update:
Schien, wenn der Aufruf der get_field_object($field_name)
möglicherweise habe das gesamte Feld Einstellungen, einschließlich der Entscheidungen.
Aber wenn ich rufen Sie die Funktion mit den Namen des Feldes, das unten zurückgegeben:
array(18) {
["key"]=>
string(33) "field_time_availability"
["label"]=>
string(0) ""
["name"]=>
string(27) "time_availability"
["_name"]=>
string(27) "time_availability"
["type"]=>
string(4) "text"
["order_no"]=>
int(1)
["instructions"]=>
string(0) ""
["required"]=>
int(0)
["id"]=>
string(37) "acf-field-time_availability"
["class"]=>
string(4) "text"
["conditional_logic"]=>
array(3) {
["status"]=>
int(0)
["allorany"]=>
string(3) "all"
["rules"]=>
int(0)
}
["default_value"]=>
string(0) ""
["formatting"]=>
string(4) "html"
["maxlength"]=>
string(0) ""
["placeholder"]=>
string(0) ""
["prepend"]=>
string(0) ""
["append"]=>
string(0) ""
["value"]=>
bool(false)
}
Nicht das erwartete Ergebnis.
Während, wenn ich rufe diese Funktion mit dem Rohstoff-Feld-name:
get_field_object('field_55df081515e81');
Geht es rechts!
Was ist die Materie? Was ist der Unterschied und wie bekomme ich es richtig mit der Feldname?
- ACF-Dokumentation ist ein guter Ort, um zu starten.
- Ich habe gelesen, dass rund, keine Lösung.
- Sogar hier? (Blick auf die template-Nutzung)
- nun, ich habe gelesen, dass, versuchte mit kein Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich, nach allem, fand ich eine zuverlässige Lösung, um rund um diese Frage:
Können Sie sehen zunächst die
api_acf_load_field
Funktion im source-code:Können wir einfach Durchlaufen aller eingetragenen Felder, um wählen Sie die richtigen sind.
Aber die
$GLOBALS['acf_register_field_group']
ist es nur, wenn wir rufenregister_field_group
explizit (Fall 2 unten). Oder im normalen Fall (Fall 1 unten), können wir nicht bekommen, es auf diese Weise.So finden sich in den verschiedenen Fällen:
Fall 1: Wenn das Feld Gruppen sind festgelegt in der admin-panel (in der Datenbank):
In diesem Fall das Feld Gruppen-store als post-post-Typ ist
acf
, und die Feld-Informationen gespeichert sind alspost_meta
das Feld Gruppe.So, wir schnappen Sie alle Felder eingetragen (aus der Datenbank), und wählen Sie die richtige(N).
Fall 2: Wenn
register_field_group
ausdrücklich, wie mit dem export von php-Skripten in diefunctions.php
:Dann haben wir endlich einen immer Arbeit-Funktion:
Auf ACFs Website erklären Sie:
"The API return der ausgewählte Wert. Wenn Sie wählen Sie die option mehrere für dieses Feld, die API liefert ein array von Werten."
So versuchen Sie Folgendes:
Wenn Sie aktiviert haben die Auswahl von mehreren Werten verwenden, sollten Sie das Kontrollkästchen anstelle des radios.
Zugang die verfügbaren Optionen, die Sie haben, um die field-Objekt.
Bekommen das field-Objekt von einem Benutzer, verwenden Sie diese Schreibweise:
field_55df081515e81
, während das Feld name isttime_availability
. und ich habe die Entscheidungen, die von der alias -field_55df081515e81
, aber nicht zu Holen, aus dem Namentime_availability
, warum?get_field_object
mitfield_name
und keine entsprechende Seiten-id, es versucht zu Holen die meta-Wert von der aktuellen Seite. Also, wenn Sie versuchen, um die Feld-Werte auf einer anderen - Website, würden Sie brauchen, um verwenden Sie entweder das Schlüsselwort oder den Namen des Feldes in Kombination mit der post-id, wo Sie gespeichert haben Ihr Feld.get_field_object($field_name, 'user_.'.$user_id)
$user_meta = get_field_objects('user_' . $userID);
get_field_object('time_availability', 'user_37')
funktioniert wie erwartet!Nicht sicher, warum
get_field_object
immer false zurück, und die Antwort, die ich habe, bevor Sie nicht mehr funktioniert, also habe ich eine neue Lösung, ich denke, vielleicht ACF aktualisiert, wie Daten speichern, benutzerdefiniertes Feld speichern jetzt inwp_post
Tabelle, post-Typ istacf-field
.