ворд-пресс.рф
Разработка

ACF Options Page: глобальные поля сайта, настройки и вывод в теме

Использование ACF PRO Options Page для телефона, контактов и других глобальных настроек сайта.

Глобальные контакты, адрес, телефон и повторяющиеся реквизиты удобно хранить в ACF Options Page: значения будут доступны из разных шаблонов без привязки к одной записи. Эта возможность относится к ACF PRO и сохраняет данные в опциях сайта.

Когда это подходит

Например, номер телефона должен одинаково использоваться в шапке, футере и на странице контактов. Хранить три копии в отдельных страницах неудобно: редактор может обновить только одну.

Создание страницы настроек

В ACF PRO можно использовать интерфейс создания Options Page либо зарегистрировать страницу программно. Пример рассчитан на собственный плагин или тему, загружаемые после ACF.

<?php
add_action( 'acf/init', function () {
    if ( ! function_exists( 'acf_add_options_page' ) ) {
        return;
    }
    acf_add_options_page( array(
        'page_title' => 'Контакты сайта',
        'menu_title' => 'Контакты сайта',
        'menu_slug'  => 'site-contact-options',
        'capability' => 'manage_options',
    ) );
} );

Создайте группу полей site_phone и site_email с правилом расположения для этой Options Page. Ограничение manage_options означает доступ к настройкам только у пользователей с соответствующим правом.

Вывод на сайте

<?php
if ( function_exists( 'get_field' ) ) {
    $email = get_field( 'site_email', 'option' );
    if ( is_string( $email ) && is_email( $email ) ) {
        echo '<a href="mailto:' . esc_attr( antispambot( $email ) ) . '">';
        echo esc_html( antispambot( $email ) ) . '</a>';
    }
}

'option' — специальный контекст ACF: без него get_field() будет искать значение у текущей записи.

Ограничения

Не храните в публично выводимых полях API-ключи и пароли. Перед созданием страницы проверьте, не управляет ли те же настройки уже другой плагин. Если код вывода должен работать даже при отключённом ACF, предусматривайте безопасное пустое состояние.

Что проверить

  • Изменения номера или адреса видны во всех нужных местах.
  • Роли без manage_options не получают доступ к Options Page.
  • Значения безопасно экранируются в текстовом и ссылочном контекстах.
  • При пустых полях шаблон не выдаёт предупреждений.

Источник: https://www.advancedcustomfields.com/resources/options-page/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.