18. Сторінки налаштувань | Field Forge - Кастомні поля, створені для швидкості
Завантажити Увійти

18. Сторінки налаштувань

Сторінки налаштувань надають інтерфейс для глобальних налаштувань сайту (логотип, текст у футері, соціальні посилання тощо). Потрібна ліцензія PRO. Значення доступні за допомогою get_field( 'field_name', 'options' ).

Field Forge підтримує три шляхи реєстрації — виберіть той, що підходить вашому робочому процесу. Вони співіснують; значення, збережені під певним slug, доступні незалежно від того, як була зареєстрована сторінка.

ШляхДжерелоКоли використовувати
Адмін UI (Field Forge > Options Pages)Таблиця wp_fieldforge_options_pagesМенеджери контенту хочуть додати або перейменувати сторінки без зміни коду
Авто-регистрация з правила розташування групи полів (options_page == )Визначення групи полівСторінка містить точно одну групу полів; вам не потрібна власна іконка чи позиція
fieldforge_add_options_page([...]) PHP APIКод functions.php / плагінаРеєстрація повинна постачатися з темою; ви хочете повний контроль над іконкою, позицією, можливістю, батьківським slug

fieldforge_add_options_page( $args )

Повна довідка параметрів:
ПараметрТипЗа замовчуваннямОпис
page_titlestring'Options'Заголовок сторінки, що відображається вгорі
menu_titlestring'Options'Мітка меню в бічній панелі адміністратора
menu_slugstring'fieldforge-options'Унікальний slug для URL сторінки
capabilitystring'manage_options'Необхідна можливість
parent_slugstring''Slug батьківського меню (порожній = верхній рівень)
icon_urlstring'dashicons-admin-generic'Клас Dashicon або URL зображення
positionint\nullnullПозиція меню

Сторінка налаштувань верхнього рівня

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

Підсторінки під батьківською

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

Доступ до значень сторінки налаштувань

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 для сторінок, керованих UI

Сторінки, додані в адміністративному інтерфейсі, зберігаються в wp_fieldforge_options_pages і доступні для безголовного / сценарного управління (джерела PHP-API та field-group-rule НЕ знаходяться в цій таблиці і доступні лише для читання через цей кінцевий пункт). Усі маршрути вимагають автентифікованого запиту з 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')

Валідація відповідає адміністративному інтерфейсу: page_title та menu_slug є обов’язковими, slug має бути унікальним, зарезервовані slug’и Field Forge (наприклад, fieldforge-settings) відхиляються. Помилки повертають JSON у формі WP_Error з code та message.

Інтеграція Lang Forge

Коли Lang Forge активний, значення на сторінці параметрів зберігаються для кожної мови. З боку шаблону, get_field() автоматично повертає значення для поточної мови.

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 Онлайн

Привіт! Я асистент ШІ Field Forge. Запитайте мене про будь-що щодо плагіна — налаштування, можливості, усунення несправностей чи розробку.

Щойно
Працює на Forge AI · Переглянути документацію