TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Расширение шаблона настройщика тем WordPress

32

В части 3 серии «Настройщик тем» вы познакомились с Boilerplate настройщика тем, который позволяет упростить код, обрабатывающий параметры вашей темы. Все, что вам нужно сделать, это передать массив полей параметров, и шаблон позаботится о регистрации разделов, настроек и элементов управления Theme Customizer за вас за кулисами.

До сих пор шаблон позволял вам использовать текстовые поля, флажки, переключатели и поля выбора в настройщике тем, в этой статье показано, как его можно расширить.

Примечание. Прежде чем продолжить, загрузите последнюю версию Boilerplate настройщика тем WordPress из его репозитория Github. Со времени последнего урока я внес в него некоторые улучшения, и важно, чтобы ваш код был актуальным. Взгляните на предыдущий пост, чтобы получить больше примечаний об изменениях, но в двух словах, как только вы скопируете шаблон в папку своей темы, вам вообще не нужно редактировать его файлы – все редактирование выполняется с помощью фильтров и хуков действий.

Подключение к шаблону настройщика тем

В Boilerplate настройщика тем WordPress есть несколько хуков действий и фильтров. Вы можете подключиться к любому из них из файла functions.php вашей темы, используя функции add_action и add_filter :

  • ‘thsp_cbp_directory_uri’ – ловушка фильтра, определенная в helpers.php, позволяет вам изменить расположение Customizer Boilerplate в папке вашей темы. По умолчанию шаблонный путь выглядит так – get_template_directory_uri(). ‘/ customizer-markerplate’ – но если вы предпочитаете переместить его в другое место, это ловушка, которая может вам помочь.
  • ‘thsp_cbp_menu_link_text’ – ловушка фильтра, определенная в helpers.php, позволяет изменять текстовую ссылку меню. Boilerplate добавляет ссылку под Внешний вид на панели инструментов WordPress, позволяя пользователям легко получить доступ к Настройщику тем. По умолчанию в этой ссылке будет написано «Настройщик темы», и вы можете изменить текст, используя ловушку фильтра thsp_cbp_menu_link_text.
  • ‘thsp_cbp_capability’ – ловушка фильтра, определенная в helpers.php. Позволяет изменить требуемую по умолчанию возможность, используемую в методе $ wp_customize-> add_setting.
  • ‘thsp_cbp_option’ – ловушка фильтра, определенная в helpers.php. Если вы используете ‘option’ в своих аргументах настроек, используйте этот хук, чтобы изменить имя записи, в которой будут храниться значения настроек вашей темы в таблице wp_options. Значение по умолчанию – thsp_cbp_theme_options, убедитесь, что вы подключились к нему, и измените его на то, что содержит название вашей темы.
  • ‘thsp_cbp_options_array’ – ловушка фильтра, определенная в options.php, вы ДОЛЖНЫ подключиться к ней и заменить массив опций по умолчанию (содержащий примеры опций) опциями, которые используются в вашей теме. Я повторяю, что, полужирный его и подчеркните его: Y НУ должны вклиниться в него и заменить массив на опции по умолчанию с параметрами, которые используются в вашей теме.
  • ‘thsp_cbp_custom_controls’ – Хук действия, определенный в custom-controls.php, подключившись к нему, вы можете создавать свои собственные пользовательские элементы управления, продолжайте читать, чтобы увидеть пример того, как это сделать.
  • ‘tshp_cbp_remove_sections’, ‘tshp_cbp_remove_controls’ и ‘tshp_cbp_remove_settings’ – хуки фильтров, определенные в customizer.php. Вы можете передать им массивы встроенных идентификаторов разделов (или идентификаторов элементов управления или идентификаторов настроек), чтобы удалить некоторые встроенные разделы, элементы управления или настройки.

Примечание. Хотя мы занимаемся расширяемостью и создаем ваши собственные хуки, чтобы другие разработчики могли использовать их для расширения вашего кода, невозможно переоценить, насколько это важно. В конце концов, именно так работает WordPress (ядро). И я не мог достаточно отблагодарить Пиппина и его статьи за то, что эта идея пришла мне в голову.

Пользовательские элементы управления

В обновленной версии Theme Customizer (которую вы только что проверили, верно?) Есть еще несколько элементов управления, которые вы можете использовать – поле textarea, поле номера HTML5 и поле изображений, которое, по сути, является модной версией переключателей.

Эти настраиваемые элементы управления определены в custom-controls.php, я не буду здесь рассматривать их все, но давайте взглянем на один (числовое поле HTML5), чтобы увидеть, как все это работает:

/** * Creates Customizer control for input[type=number] field * * @since Theme_Customizer_Boilerplate 1.0 */ class CBP_Customizer_Number_Control extends WP_Customize_Control { public $type = 'number'; public function render_content() { echo '<label> <span class="customize-control-title">'. esc_html( $this->label) .'</span> <input type="number" '. $this->link() .' value="'. intval( $this->value()) .'" /> </label>'; } }

Как видите, все, что вам нужно сделать, это определить новый элемент управления $ type и его функцию render_content, которая выводит элемент управления на экран настройки темы.

Использование встроенных настраиваемых элементов управления Customizer Boilerplate

Это то же самое, что и простые поля, описанные в предыдущем руководстве, единственное, о чем вам нужно знать, – это «типы», которые нужно использовать для каждого из них:

  • Числовое поле – ‘число’
  • Поле Textarea – ‘textarea’
  • Изображения, которые действуют как переключатели – ‘images_radio’, вот пример этого элемента управления в предстоящей бесплатной теме Cazuela :

Расширение шаблона настройщика тем WordPress

Зная названия этих новых типов элементов управления, добавить их очень просто. Вот как вы можете добавить элемент управления числовым полем в массив, содержащий все ваши параметры:

/* * ============ * ============ * Number Field * ============ * ============ */ 'new_number_field' => array( 'setting_args' => array( 'default' => '', 'type' => 'option', 'capability' => $thsp_cbp_capability, 'transport' => 'refresh', ), 'control_args' => array( 'label' => __( 'Number', 'my_theme_textdomain' ), 'type' => 'number', // Textarea control 'priority' => 8) )

Примечание. Если вы не уверены, куда это добавить, проверьте раздел «Использование массива параметров для добавления разделов, настроек и элементов управления настройщика» в части 3 этой серии. Кроме того, в файле options.php есть образец для каждого из настраиваемых элементов управления.

Добавление собственных элементов управления

Вернемся к хуку действия thsp_cbp_custom_controls, о котором я упоминал ранее:

/** * Action hook that allows you to create your own controls */ do_action( 'thsp_cbp_custom_controls' );

Это простой обработчик действий WordPress, который позволяет добавлять собственные элементы управления без изменения файлов Boilerplate настройщика тем. Почему бы вам избежать их редактирования? Потому что, если вместо этого вы подключаетесь к шаблону, каждый раз, когда кто-то обновляет его, вы можете просто загрузить последнюю версию, вставить ее в свою тему и не потерять внесенные вами изменения. Подумайте о редактировании основных файлов WordPress вместо написания плагина, редактирования темы или создания дочерней темы и т.д.

Если вам когда-нибудь понадобится добавить свои собственные элементы управления, вы можете сделать это следующим образом:

function my_theme_add_customizer_boilerplate_control() { /** * Creates custom control to use with Theme Customizer Boilerplate * Use a unique class prefix! * * @since Theme_Customizer_Boilerplate 1.0 */ class CBP_Customizer_My_Control extends WP_Customize_Control { public $type = 'my_type'; // Change this public function render_content() { // Control output goes here } } } add_action( 'thsp_cbp_custom_controls', 'my_theme_add_customizer_boilerplate_control' );

Убедитесь, что вы добавили в свой собственный класс элемента управления что-то уникальное, чтобы его имя не конфликтовало с другим классом. Я использовал CBP_ (Customizer Boilerplate) – поскольку вы используете шаблон в теме, название вашей темы имеет много смысла и должно работать для вас.

Настройщик тем: что дальше?

Теперь, когда WordPress Theme Customizer Boilerplate расширяется с помощью хуков, мы рассмотрим, чтобы добавить «условные параметры темы» – те, которые появятся только в том случае, если активен определенный плагин, и помогут вам не перегружать экран Theme Customizer.

Что вы думаете о Customizer Boilerplate? Планируете ли вы использовать его в своих темах? Есть идеи, как это можно улучшить? Ваши отзывы всегда приветствуются.

Источник записи: https://www.wpexplorer.com

Leave A Reply

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. ПринимаюПодробнее