Options-Seiten bieten eine Benutzeroberfläche für siteweite Einstellungen (Logo, Fußzeilentext, soziale Links usw.). Erfordert eine PRO-Lizenz. Werte werden mit get_field( 'field_name', 'options' ) abgerufen.
Field Forge unterstützt drei Registrierungswege — wählen Sie den, der am besten zu Ihrem Workflow passt. Sie koexistieren; Werte, die gegen einen bestimmten Slug gespeichert sind, sind unabhängig davon erreichbar, wie die Seite registriert wurde.
| Pfad | Quelle | Wann zu verwenden |
|---|---|---|
Admin UI (Field Forge > Options Pages) | wp_fieldforge_options_pages Tabelle | Inhaltsmanager möchten Seiten hinzufügen oder umbenennen, ohne den Code zu berühren |
Automatische Registrierung von einer Feldgruppen-Standortregel (options_page == ) | Feldgruppendefinition | Die Seite enthält genau eine Feldgruppe; Sie benötigen kein benutzerdefiniertes Symbol oder eine Position |
fieldforge_add_options_page([...]) PHP-API | functions.php / Plugin-Code | Die Registrierung sollte mit dem Theme geliefert werden; Sie möchten vollständige Kontrolle über Symbol, Position, Berechtigung, übergeordneten Slug |
fieldforge_add_options_page( $args )
Vollständige Parameterreferenz:
| Parameter | Typ | Standard | Beschreibung | |
|---|---|---|---|---|
page_title | string | 'Options' | Seitentitel, der oben angezeigt wird | |
menu_title | string | 'Options' | Menübezeichnung in der Admin-Seitenleiste | |
menu_slug | string | 'fieldforge-options' | Eindeutiger Slug für die Seiten-URL | |
capability | string | 'manage_options' | Erforderliche Berechtigung | |
parent_slug | string | '' | Übergeordneter Menü-Slug (leer = oberste Ebene) | |
icon_url | string | 'dashicons-admin-generic' | Dashicon-Klasse oder Bild-URL | |
position | int\ | null | null | Menüposition |
Optionen-Seite auf oberster Ebene
add_action( 'init', function() {
if ( ! function_exists( 'fieldforge_add_options_page' ) ) {
return;
}
fieldforge_add_options_page( [
'page_title' => 'Theme Settings',
'menu_title' => 'Theme Settings',
'menu_slug' => 'theme-settings',
'icon_url' => 'dashicons-admin-customizer',
'position' => 2,
] );
} );Unterseiten unter einem Elternteil
add_action( 'init', function() {
if ( ! function_exists( 'fieldforge_add_options_page' ) ) {
return;
}
fieldforge_add_options_page( [
'page_title' => 'Site Options',
'menu_title' => 'Site Options',
'menu_slug' => 'site-options',
'icon_url' => 'dashicons-admin-site',
] );
fieldforge_add_options_page( [
'page_title' => 'Header Settings',
'menu_title' => 'Header',
'menu_slug' => 'site-options-header',
'parent_slug' => 'site-options',
] );
fieldforge_add_options_page( [
'page_title' => 'Footer Settings',
'menu_title' => 'Footer',
'menu_slug' => 'site-options-footer',
'parent_slug' => 'site-options',
] );
} );Zugriff auf Werte der Optionsseite
$logo = get_field( 'site_logo', 'options' );
$phone = get_field( 'site_phone', 'options' );
// Repeater on options page
if ( have_rows( 'business_hours', 'options' ) ) :
echo '<table class="hours">';
while ( have_rows( 'business_hours', 'options' ) ) : the_row();
echo '<tr><td>' . esc_html( get_sub_field( 'day' ) ) . '</td>';
echo '<td>' . esc_html( get_sub_field( 'hours' ) ) . '</td></tr>';
endwhile;
echo '</table>';
endif;REST-API für UI-gemanagte Seiten
Seiten, die in der Admin-UI hinzugefügt werden, leben in wp_fieldforge_options_pages und sind für headless / skriptgesteuertes Management verfügbar (PHP-API und Feldgruppenregel-Quellen sind NICHT in dieser Tabelle und sind schreibgeschützt über diesen Endpunkt). Alle Routen erfordern eine authentifizierte Anfrage mit manage_options.
GET /wp-json/fieldforge/v1/options-pages # list active rows (?include_deleted=1 to see soft-deleted)
GET /wp-json/fieldforge/v1/options-pages/{id} # one row
POST /wp-json/fieldforge/v1/options-pages # create — body: { page_title, menu_slug, capability, parent_slug, position, icon_url, ... }
PUT /wp-json/fieldforge/v1/options-pages/{id} # update — same body shape
DELETE /wp-json/fieldforge/v1/options-pages/{id} # soft-delete (status='deleted')Die Validierung entspricht der Admin-UI: page_title und menu_slug erforderlich, der Slug muss eindeutig sein, reservierte Field Forge-Slugs (z. B. fieldforge-settings) werden abgelehnt. Fehler geben ein WP_Error-formatiertes JSON mit code und message zurück.
Lang Forge-Integration
Wenn Lang Forge aktiv ist, werden die Werte der Optionsseite pro Sprache gespeichert. Von der Template-Seite gibt get_field() automatisch den Wert für die aktuelle Sprache zurück.
// These calls automatically return the correct language value
$logo = get_field( 'site_logo', 'options' );
$phone = get_field( 'site_phone', 'options' );
$cta = get_field( 'cta_text', 'options' );
// Internal storage:
// Default (EN): option_page = 'site-options'
// French: option_page = 'site-options:fr'
// Spanish: option_page = 'site-options:es'—