Плагин Carbon fields. Часть 3.2 – Типы Контейнеров. Theme Options.

Автор: | 07.07.2019

Контейнер Theme option используется для добавления страниц с различными параметрами в back-end. По умолчанию контейнеры Theme option автоматически создают главную страницу с названием «настройки темы» (Theme Options) в области администрирования. В большинстве случаев достаточно настроек по умолчанию:

 

use Carbon_Fields\Container;

use Carbon_Fields\Field;

Container::make( 'theme_options', __( 'Theme Options' ) )

->add_fields( array(

Field::make( 'text', 'crb_facebook_url', __( 'Facebook URL' ) ),

Field::make( 'textarea', 'crb_footer_text', __( 'Footer Text' ) )

) );

 

но, если вам нужно изменить название или расположение страницы в меню, используйте Multiple option.

напомню, что в прошлой статье мы рассматривали контейнер  Post Meta.

Multiple option page

Иногда требуется создать несколько страниц параметров. Или вам нужно разместить разные страницы в разных разделах меню администратора. Например, у вас может быть обширный список параметров фона, которые вы хотите разместить на отдельной странице параметров темы в разделе Внешний вид.
Чтобы изменить расположение страницы параметров темы, используйте set_page_parent ($parent ), где $parent:

Ссылка на контейнер параметров темы верхнего уровня.
Ярлык меню контейнера параметров темы верхнего уровня.
Ярлык меню любой страницы администрирования верхнего уровня.

Theme Options

 

use Carbon_Fields\Container;

use Carbon_Fields\Field;




// Страница параметры по умолчанию

$basic_options_container = Container::make( 'theme_options', __( 'Basic Options' ) )

->add_fields( array(

Field::make( 'header_scripts', 'crb_header_script', __( 'Header Script' ) ),

Field::make( 'footer_scripts', 'crb_footer_script', __( 'Footer Script' ) ),

) );




// Добавить вторую страницу параметров в разделе 'Basic Options'

Container::make( 'theme_options', __( 'Social Links' ) )

->set_page_parent( $basic_options_container ) // ссылка на контейнер верхнего уровня

->add_fields( array(

Field::make( 'text', 'crb_facebook_link', __( 'Facebook Link' ) ),

Field::make( 'text', 'crb_twitter_link', __( 'Twitter Link' ) ),

) );




// Добавить третью страницу параметров

Container::make( 'theme_options', __( 'Customize Background' ) )

->set_page_parent( $basic_options_container)

->add_fields( array(

Field::make( 'color', 'crb_background_color', __( 'Background Color' ) ),

Field::make( 'image', 'crb_background_image', __( 'Background Image' ) ),

) );

 

Локализация заголовка страницы

По умолчанию URL-адрес страницы параметров создается из заголовка, переданного методу Container:: make. В приведенном выше примере URL-адрес будет admin.php?page=theme-options. Если вы используете функцию gettext для локализации названия, например:

 

Container::make( 'theme_options', __( 'Theme Options', 'my-textdomain' ) )

 

тогда URL вашей страницы будет отличаться для разных языков. Это вызовет проблемы с многоязычными плагинами, такими как WPGlobus или WPML, которые позволяют переключать язык администратора.

Чтобы решить эту проблему, необходимо вызвать метод set_page_file, например:

 

use Carbon_Fields\Container;

use Carbon_Fields\Field;

Container::make( 'theme_options', __( 'Theme Options', 'my-textdomain' ) )

->set_page_file( 'theme-options' )

->add_fields( array(

Field::make( 'text', 'crb_facebook_url' ),

Field::make( 'textarea', 'crb_footer_text' ),

) );

Значок меню

Для изменения значка страницы параметров темы можно использовать set_icon ($icon ), где $icon может быть одним из значений, поддерживаемых параметром $ icon_url функции add_menu_page ().

Theme Options

Ниже приведен пример настройки значка страницы параметров темы:

 

use Carbon_Fields\Container;

use Carbon_Fields\Field;

Container::make( 'theme_options', 'Basic Options' )

->set_icon( 'dashicons-carrot' )

->add_fields( array(

Field::make( 'text', 'crb_test_field' ),

) );

Заголовок меню

Для изменения заголовка кнопки меню контейнера можно использовать set_page_menu_title( $title), где $title-желаемый заголовок.

Theme Options

 

Container::make( 'theme_options', 'A very long option page title' )

->set_page_menu_title( 'Custom Options' )

->add_fields( array(

// ...

) );

Положение меню

Чтобы изменить приоритет позиции кнопки меню страницы, Используйте set_page_menu_position ($position ), где $position-число.

Theme Options

 

Container::make( 'theme_options', 'Basic Options' )

->set_page_menu_position( 1 )

->add_fields( array(

// ...

) );

Доступ к значениям полей

Для извлечения значений полей из контейнера Theme option необходимо использовать функцию carbon_get_theme_option ($name), где:
$name — имя извлекаемого поля.
Например, добавим на каждую страницу ссылку на Facebook.
Для этого перейдем в шаблон page.php и пропишем следующее:

 

<p>Copyright <?php echo carbon_get_theme_option( 'crb_facebook_link' ); ?></p>

 

Перейдем на страницу и увидим

Theme Options

Похожие записи
Лучшие Плагины WordPress AMP

Посетители вашего сайта получают доступ к его содержимому не только Read more

Как отключить плагины WordPress с помощью FTP

Вы пытаетесь отключить плагины WordPress на своем сайте? Скорее всего Read more

Плагин Carbon fields. Часть 4.2 –Типы полей. Complex.

Сложные поля в Carbon fields, действуют как контейнеры, в которые Read more

Плагин Carbon fields. Часть 4.2 –Типы полей. Медиа (file, Image,Media Gallery)

Плагин Carbon fields позволяет загружать на станицы и записи медиа-файлы Read more

Плагин Carbon fields. Часть 4.2 –Типы полей. Дата и время.

Продолжаем знакомство с плагином для создания произвольных полей Carbon fields. Read more

Плагин Carbon fields. Часть 3.3 — Comment Meta, Term Meta

Продолжаем изучать плагин для создания произвольных полей Carbon fields. Сегодня Read more

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

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

четыре × пять =