18. Pages d'Options | Field Forge - Champs personnalisés, conçus pour la vitesse
Télécharger Se connecter

18. Pages d’Options

Les pages d’options fournissent une interface utilisateur pour les paramètres globaux du site (logo, texte de pied de page, liens sociaux, etc.). Nécessite une licence PRO. Les valeurs sont accessibles en utilisant get_field( 'field_name', 'options' ).

Field Forge prend en charge trois chemins d’enregistrement — choisissez celui qui convient le mieux à votre flux de travail. Ils coexistent ; les valeurs stockées contre un slug donné sont accessibles indépendamment de la manière dont la page a été enregistrée.

CheminSourceQuand l’utiliser
Interface Admin (Field Forge > Options Pages)Table wp_fieldforge_options_pagesLes gestionnaires de contenu souhaitent ajouter ou renommer des pages sans toucher au code
Auto-enregistrement à partir d’une règle de localisation de groupe de champs (options_page == )Définition du groupe de champsLa page héberge exactement un groupe de champs ; vous n’avez pas besoin d’une icône ou d’une position personnalisée
fieldforge_add_options_page([...]) API PHPCode functions.php / pluginL’enregistrement doit être inclus avec le thème ; vous souhaitez un contrôle total sur l’icône, la position, la capacité, le slug parent

fieldforge_add_options_page( $args )

Référence Complète des Paramètres :
ParamètreTypePar défautDescription
page_titlestring'Options'Titre de la page affiché en haut
menu_titlestring'Options'Étiquette de menu dans la barre latérale admin
menu_slugstring'fieldforge-options'Slug unique pour l’URL de la page
capabilitystring'manage_options'Capacité requise
parent_slugstring''Slug du menu parent (vide = niveau supérieur)
icon_urlstring'dashicons-admin-generic'Classe Dashicon ou URL de l’image
positionint\nullnullPosition du menu

Page d’Options de Niveau Supérieur

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,
    ] );
} );

Sous-Pages Sous un Parent

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',
    ] );
} );

Accéder aux Valeurs de la Page d’Options

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;

API REST pour les pages gérées par l’UI

Les pages ajoutées dans l’interface admin vivent dans wp_fieldforge_options_pages et sont exposées pour une gestion sans tête / scriptée (les sources API PHP et règle de groupe de champs NE SONT PAS dans ce tableau et sont en lecture seule via ce point de terminaison). Tous les itinéraires nécessitent une demande authentifiée avec 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')

La validation correspond à l’interface admin : page_title et menu_slug requis, le slug doit être unique, les slugs réservés de Field Forge (par exemple fieldforge-settings) sont rejetés. Les erreurs retournent un JSON en forme de WP_Error avec code et message.

Intégration Lang Forge

Lorsque Lang Forge est actif, les valeurs des pages d’options sont stockées par langue. Du côté du modèle, get_field() retourne automatiquement la valeur pour la langue actuelle.

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'

Assistant IA Forge En ligne

Bonjour ! Je suis l'assistant IA Field Forge. Posez-moi n'importe quelle question sur le plugin — configuration, fonctionnalités, dépannage ou développement.

À l'instant
Propulsé par Forge IA · Parcourir la documentation