18. Options-Seiten | Field Forge - Benutzerdefinierte Felder, gebaut für Geschwindigkeit
Herunterladen Anmelden

18. Options-Seiten

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.

PfadQuelleWann zu verwenden
Admin UI (Field Forge > Options Pages)wp_fieldforge_options_pages TabelleInhaltsmanager möchten Seiten hinzufügen oder umbenennen, ohne den Code zu berühren
Automatische Registrierung von einer Feldgruppen-Standortregel (options_page == )FeldgruppendefinitionDie Seite enthält genau eine Feldgruppe; Sie benötigen kein benutzerdefiniertes Symbol oder eine Position
fieldforge_add_options_page([...]) PHP-APIfunctions.php / Plugin-CodeDie 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:
ParameterTypStandardBeschreibung
page_titlestring'Options'Seitentitel, der oben angezeigt wird
menu_titlestring'Options'Menübezeichnung in der Admin-Seitenleiste
menu_slugstring'fieldforge-options'Eindeutiger Slug für die Seiten-URL
capabilitystring'manage_options'Erforderliche Berechtigung
parent_slugstring''Übergeordneter Menü-Slug (leer = oberste Ebene)
icon_urlstring'dashicons-admin-generic'Dashicon-Klasse oder Bild-URL
positionint\nullnullMenüposition

Optionen-Seite auf oberster Ebene

php
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

php
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

php
$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.

text
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.

php
// 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'

Forge KI-Assistent Online

Hallo! Ich bin der Field Forge KI-Assistent. Fragen Sie mich alles über das Plugin — Einrichtung, Funktionen, Fehlerbehebung oder Entwicklung.

Gerade eben
Unterstützt von Forge KI · Dokumentation durchsuchen