Публикация в группе: Полезное для WordPress

Категории группы: Полезное

В WordPress начиная с версии 3.4 появился очень полезная штука под названием Theme Customization API. Данный интерфейс дает возможность разработчикам создавать дополнительные настройки темы, а пользователям менять эти настройки в реальном времени. В этой статье я поделюсь своим опытом работы с кастомайзером WordPress.

Содержание

  • 1. Стандартное использование Кастомайзера WordPress.
  • 2. Использование Кастомайзера на основе класса SP Customizer.

1. Стандартное использование Кастомайзера WordPress

Итак начнем. В админке, кастомайзер находится в разделе меню внешний вид -> настроить.

Здесь находятся стандартные настройки темы.

Давайте попробуем их расширить. Код кастомайзера, как правило находится в папке inc/customizer.php, а работа с ним осуществляется через хук customize_register

Создадим функцию test_customizer_addition и посмотрим что получилось. Данную функцию нужно добавить в файл customizer.php вашей темы.

Здесь мы создали секцию test_section с помощью метода $wp_customize->add_section и текстовое поле используя методы $wp_customize->add_setting и $wp_customize->add_control.

$wp_customize->add_section - добавляет секцию. Используется группировки настроек и элементов управления.
$wp_customize->add_setting() - добавляет настройку. Используется для предпросмотра изменений, очистки и сохранения.
$wp_customize->add_control() - добавляет элемент управления. Используется для вывода элементов управления.

Важный момент, элемент управления не может существовать без секции.

Давайте теперь создадим что-нибудь посложнее. Расширим нашу функцию.

Мы создали числовое поле('type' => 'number'), чекбокс('type' => 'checkbox'), текстовое поле('type' => 'textarea') и изображение (WP_Customize_Image_Control).

Данного набора полей настроек достаточно что бы кастомизировать шаблон WordPress.

Так же стоит обратить внимание на параметр sanitize_callback. С его помощью мы вызываем функцию для очистки данных в зависимости от их типа.

Для строки - sanitize_text_field;
Для числа - sp_sanitize_number;
Для текста - sp_sanitize_textarea;
Для чекбокса - sp_sanitize_checkbox;
Для изображения - esc_url_raw;

Для вывода значений настройки используется функция get_theme_mod().

Пример:

2. Использование Кастомайзера на основе класса SP_Customizer.

Теперь давайте подключим класс SP_Customizer в файл functions.php. Я его расположил в папке inc своего шаблона.

Код примера который я показывал выше нужно закомментировать, и наш новый код будет таким:

Здесь мы передаем методу sp_create_customizer() многомерный массив $args с параметрами.

section - Секция. Содержит в себе элементы управления (fields).

name - уникальное имя секции
title - название секции.

Если нужно создать еще одну секцию, то добавляем элемент массива с индексом к примеру test_section2 и перечисляем нужные элементы управления(fields).

В fields содержатся элементы управления:

name - уникальное имя;
type - тип;
label - название;
sanitize - очистка данных (y/n);

Скачать class-sp-customizer.php можно тут.

3

Автор публикации

не в сети 6 дней

spoot@bk.ru

74
Комментарии: 49Публикации: 25Регистрация: 09-03-2016Продаж/Покупок: 191/3