Библиотека классов управления темами WordPress
Поддерживает распространённые типы настроек: текстовое поле, раскрывающийся список, флажок, переключатель и область для ввода текста, а также загрузку изображений.
Скачайте файл класса в конце статьи, скопируйте папку include в каталог вашей темы. В этой папке будет находиться только один файл — ThemeSetting.php.
Добавьте следующий код в начало файла functions.php вашей темы:
require('include/ThemeSetting.php');
После этого класс будет успешно импортирован.
Вы можете создать страницу приветствия для панели управления темой. Добавьте следующий код в файл functions.php вашей темы:
$themeControlOptions = array(
'welcome' => array(
'id' => 'welcome',
'heading' => 'Приветствие',
'type' => 'page',
'content' => '<p>Добро пожаловать в тему Backzine...</p>',
),
);
$themeControl = new ThemeSetting();
$themeControl->options = $themeControlOptions;
$themeControl->themeControl();
Фактически можно добавить любой элемент, требующий загрузки изображения, но слайд-шоу используется чаще всего.
$themeControlOptions = array(
'slide' => array(
'id' => 'slide',
'heading' => 'Слайд-шоу',
'type' => 'slide',
'name' => 'theme_slide',
'width' => 200,
'height' => 80,
),
);
$themeControl = new ThemeSetting();
$themeControl->options = $themeControlOptions;
$themeControl->themeControl();
Данные слайд-шоу сериализуются после сохранения в таблице wp_option, значение параметра option_name соответствует значению параметра name. Пример вызова:
$slides = get_option('theme_slide');
$slides = unserialize($slides);
foreach($slides as $slide) {
echo '<li><a href="' . $slide['link'] . '" target="_blank"><img src="' . $slide['img'] . '" alt="' . $slide['alt'] . '" /></a></li>';
}
Этот код выведет список li.
Здесь мы объединим инструкции по добавлению текстовых полей (input), областей для ввода текста (textarea), раскрывающихся списков (select), флажков (checkbox), переключателей (radio) и загрузки изображений.
$themeControlOptions = array(
'routine' => array(
'id' => 'routine',
'heading' => 'Стандартные',
'dsc' => '<p>Описание функции</p>',
'feild' => array(
'theme_logo' => array(
'type' => 'file',
'label' => 'Логотип сайта',
'name' => 'theme_logo',
'width' => 128,
'height' => 60,
'default' => get_bloginfo('template_url') . '/img/logo.png',
),
'home_title' => array(
'type' => 'input',
'label' => 'SEO-заголовок главной страницы',
'name' => 'home_title',
'dsc' => 'Содержимое тега title на главной странице, отображается только на главной',
'placeholder' => 'Введите заголовок сайта',
),
'home_description' => array(
'type' => 'textarea',
'label' => 'Описание SEO на главной странице',
'name' => 'home_description',
'dsc' => 'Содержание тега description на главной странице, отображается только на главной',
),
'link_open' => array(
'type' => 'radio',
'label' => 'Включение ссылок друзей',
'name' => 'link_open',
'option' => array(
'yes' => 'Да',
'no' => 'Нет',
),
),
'cat_list' => array(
'type' => 'checkbox',
'label' => 'Отображение категорий на главной',
'name' => 'cat_list',
'option' => array(
'1' => 'Разработка',
'3' => 'Ресурсы',
'2' => 'Управление',
),
),
'pic_cat' => array(
'type' => 'select',
'label' => 'Категория изображения',
'name' => 'pic_cat',
'option' => array(
'1' => 'Разработка',
'3' => 'Ресурсы',
'2' => 'Управление',
),
),
),
),
);
$themeControl = new ThemeSetting();
$themeControl->options = $themeControlOptions;
$themeControl->themeControl();
Для классификации нужны не только некоторые настройки для SEO, но иногда и настройки обложки изображения, например:
$catMetaOptions = array(
'upload' => false,
'feild' => array(
'seo_title' => array(
'type' => 'input',
'label' => 'SEO заголовок',
'name' => 'seo_title',
),
'seo_description' => array(
'type' => 'textarea',
'label' => 'Описание SEO',
'name' => 'seo_description',
)
)
);
$catMeta = new ThemeSetting();
$catMeta->options = $catMetaOptions;
$catMeta->catMeta();
На фронтэнде можно получить идентификатор категории или метки и вызвать настройки бэкэнда:
get_term_meta( $tag->term_id, 'seo_title', true );
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )