Наверняка вы уже пользовались Настройщиком тем, или Кастомайзером, как его называют в соответствии с английским вариантом Customizer. И, возможно, уже добавляли свои настройки (опции) для самописной темы.

Плагин Advanced Custom Fields (ACF) отлично себя зарекомендовал в плане добавления различных полей для использования на страницах, в шаблонах или записях. Но что делать, если данные отдельных полей должны быть доступны на любой странице?

В этом случае вам пригодится страница настроек. Для ее создания существуют специальные функции:

В официальной документации рекомендуется создавать страницу настроек с помощью такого кода:

Обратите внимание, что для подстраниц, созданных функцией acf_add_options_sub_page() обязательно нужно указать родительскую страницу в параметре 'parent_slug' => 'theme-general-settings', чтобы эти страницы были связаны.

После того, как вы добавили этот код в function.php, в меню админки WordPress появится пункт Theme General Settings.  Название берется из параметра 'page_title'.

Для того чтобы затем получить значение какого-либо поля с этой страницы, необходимо создать группу полей, связанных с этой страницей. Предложение сделать это вы найдете на созданной странице настроек.

ACF theme settings

После того, как вы создали такие поля, вы можете использовать их в функциях get_field('field_name') для того, чтобы записать значение поля в переменную, или the_field('field_name') для вывода  значения этого поля на странице. Однако важным моментом является то, что в случае полей со страницы настроек этого будет недостаточно. Нужно еще добавить второй параметр 'option':

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

В том случае, если вы хотите сделать страницу настроек уникальной, вы можете задать параметр post_id. Его можно указать для обеих функций. Если вы назначаете этот параметр, то и обращаться потом необходимо к нему при выводе полей настроек на странице темы.

Кроме того, можно использовать дополнительные параметры, связанные с другими плагинами. Например, для мультиязычного сайта, созданного с помощью плагина Polylang, можно сделать несколько подстраниц настроек для разных языков.

Например, к общим настройкам могут относиться ссылки на социальные сети. Если вы задавали их в основных настройках, то и для вывода используйте имя поля (слаг) и второй параметр - id настроек. В примере это 'theme-options':

В том случае, если вы используете значения полей с подстраницы, то вам нужно указывать id той подстраницы, поля с которой вы выводите во FrontEnd.

В случае страниц с мультиязычного сайта определить язык, который был был задан в id страниц, можно с помощью функции  pll_current_language( 'slug' ):

В группе полей для каждого языка должны быть поля с определеными именами (слагами, которые используются при выводе значения поля). В примере к каждому слагу добавляется слаг языка.

Группы полей для разных языков

Затем на странице настроек для каждого языка вводим разную информацию:

Страницы настроек для разных языков

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

Автор: Админ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *