Сторінки налаштувань надають інтерфейс для глобальних налаштувань сайту (логотип, текст у футері, соціальні посилання тощо). Потрібна ліцензія 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_title | string | 'Options' | Заголовок сторінки, що відображається вгорі | |
menu_title | string | 'Options' | Мітка меню в бічній панелі адміністратора | |
menu_slug | string | 'fieldforge-options' | Унікальний slug для URL сторінки | |
capability | string | 'manage_options' | Необхідна можливість | |
parent_slug | string | '' | Slug батьківського меню (порожній = верхній рівень) | |
icon_url | string | 'dashicons-admin-generic' | Клас Dashicon або URL зображення | |
position | int\ | null | null | Позиція меню |
Сторінка налаштувань верхнього рівня
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,
] );
} );Підсторінки під батьківською
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',
] );
} );Доступ до значень сторінки налаштувань
$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.
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() автоматично повертає значення для поточної мови.
// 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'—