1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/beizigen-wordpress-theme-control-panel

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Библиотека классов управления темами 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();

Описание параметров:

  • id: идентификатор вкладки, должен быть уникальным;
  • heading: название вкладки;
  • type: тип, page означает вывод страницы, содержимое которой определяется параметром content;
  • content: содержимое страницы, поддерживает HTML-теги.

Добавление слайд-шоу

Фактически можно добавить любой элемент, требующий загрузки изображения, но слайд-шоу используется чаще всего.

$themeControlOptions = array(
    'slide' => array(
        'id' => 'slide',
        'heading' => 'Слайд-шоу',
        'type' => 'slide',
        'name' => 'theme_slide',
        'width' => 200,
        'height' => 80,
    ),
);
$themeControl = new ThemeSetting();
$themeControl->options = $themeControlOptions;
$themeControl->themeControl();

Описание параметров:

  • id: идентификатор вкладки, должен быть уникальным;
  • heading: название вкладки;
  • type: тип, slide означает функцию слайд-шоу;
  • name: значение атрибута name формы, которое необходимо использовать при выводе на фронтэнде, должно быть уникальным;
  • width: ширина отображения слайд-шоу на бэкэнде, не влияет на вывод на фронтэнде, по умолчанию 320;
  • height: высота отображения слайд-шоу на бэкэнде, не влияет на вывод на фронтэнде, по умолчанию 80.

Вызов на фронтэнде

Данные слайд-шоу сериализуются после сохранения в таблице 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();

Описание параметров:

  • id: идентификатор вкладки, должен быть уникальным;
  • heading: название вкладки;
  • dsc: описание функции, поддерживает HTML-теги;
  • feild: массив, содержащий различные параметры настройки.

Параметры feild:

  • type: тип формы, поддерживается: input, textarea, radio, checkbox, select, file;
  • label: метка опции;
  • name: атрибут name формы;
  • dsc: краткое описание опции, не поддерживает HTML-теги;
  • default: значение по умолчанию для формы;
  • placeholder: применимо только к input;
  • size: атрибут size элемента input, по умолчанию равен 40;
  • cols: атрибут cols элемента textarea, по умолчанию равен 50. ## Классификация метаданных

Для классификации нужны не только некоторые настройки для 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();

Описание параметров

  • upload: если необходимо загрузить изображение, то нужно установить значение upload в true, чтобы загрузить поддерживающий загрузку код JS;
  • feild: см. объяснение выше.

Вызов на фронтэнде

На фронтэнде можно получить идентификатор категории или метки и вызвать настройки бэкэнда:

get_term_meta( $tag->term_id, 'seo_title', true );

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/beizigen-wordpress-theme-control-panel.git
git@api.gitlife.ru:oschina-mirror/beizigen-wordpress-theme-control-panel.git
oschina-mirror
beizigen-wordpress-theme-control-panel
beizigen-wordpress-theme-control-panel
master