Глобальные контакты, адрес, телефон и повторяющиеся реквизиты удобно хранить в 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/
Материал был полезен?
Помогите нам сделать материалы точнее и понятнее.