Erhält die vollständige Felddefinition (Typ, Bezeichnung, Auswahlmöglichkeiten usw.) zusammen mit dem aktuellen Wert für ein einzelnes Feld.
get_field_object( $selector, $post_id )
Parameter:
| Parameter | Typ | Standard | Beschreibung | ||
|---|---|---|---|---|---|
$selector | string | — | Feldname oder Feldschlüssel | ||
$post_id | int\ | string\ | false | false | Post-ID, 'options' oder false für den aktuellen Beitrag |
array|false — Felddefinitionsarray mit einem value Schlüssel, oder false, wenn nicht gefunden.
Zurückgegebene Array-Schlüssel:
| Schlüssel | Typ | Beschreibung |
|---|---|---|
key | string | Feldschlüssel (z. B. 'field_abc123def') |
label | string | Menschlich lesbare Bezeichnung |
name | string | Feldname (Slug) |
type | string | Feldtyp (z. B. 'select', 'text') |
choices | array | Auswahlmöglichkeiten für Auswahl-/Checkbox-/Radiofelder |
return_format | string | Wie der Wert formatiert ist |
required | bool | Ob das Feld erforderlich ist |
value | mixed | Aktueller Wert für diesen Beitrag |
_group_id | int | ID der übergeordneten Feldgruppe |
php
$field = get_field_object( 'product_color' );
/*
Returns:
[
'key' => 'field_abc123def',
'label' => 'Product Color',
'name' => 'product_color',
'type' => 'select',
'choices' => ['red' => 'Red', 'blue' => 'Blue', 'green' => 'Green'],
'return_format' => 'value',
'required' => true,
'value' => 'blue',
'_group_id' => 3,
]
*/
// Render a select field dynamically based on its definition
$field = get_field_object( 'status' );
if ( $field ) {
echo '<label>' . esc_html( $field['label'] ) . '</label>';
echo '<select name="status">';
foreach ( $field['choices'] as $value => $label ) {
$selected = ( $field['value'] === $value ) ? ' selected' : '';
echo '<option value="' . esc_attr( $value ) . '"' . $selected . '>' . esc_html( $label ) . '</option>';
}
echo '</select>';
}
// Build a front-end filter UI from field definitions
$field = get_field_object( 'product_category' );
if ( $field && ! empty( $field['choices'] ) ) {
echo '<div class="filter-group">';
echo '<h4>' . esc_html( $field['label'] ) . '</h4>';
foreach ( $field['choices'] as $val => $lbl ) {
printf(
'<label><input type="checkbox" name="filter_%s[]" value="%s"> %s</label>',
esc_attr( $field['name'] ),
esc_attr( $val ),
esc_html( $lbl )
);
}
echo '</div>';
}
// Get field definition from options page
$logo_field = get_field_object( 'site_logo', 'options' );
echo 'Logo field type: ' . $logo_field['type']; // 'image'—