Темы WordPress стали динамичными, и большая часть их контроля находится в руках пользователя. Сегодня управление и настройка параметров темы стало довольно простым. Одна из самых удобных опций, которая может включать или отключать любые функции вашей темы одним щелчком мыши, это флажок. Я уверен, что вы сталкивались с несколькими сценариями кодирования, которые создают эту опцию, но как насчет изучения быстрого способа сделать это? Давайте обсудим, как Titan Framework помогает добавить опцию типа флажка.
Опция Тип флажка в Titan Framework
Titan Framework позволяет своим пользователям добавлять опцию типа флажка, которая выглядит следующим образом:
Тип опции checkbox
имеет несколько параметров:
- name : определяет отображаемое имя опции типа флажка.
- id : этот параметр назначает уникальное имя, которое помогает в получении значений.
- default : (необязательно) Устанавливает значение по умолчанию для опции.
- desc : отображает краткое описание
- livepreview : (Необязательно) Этот параметр отображает предварительный просмотр изменений при добавлении опции типа флажка в разделе настройщика темы.
- css : (Необязательно) Когда вы добавляете эту опцию на страницу администратора и / или в раздел настройщика темы, этот параметр автоматически генерирует CSS .
Все эти параметры имеют тип string
, кроме default , который является boolean
.
Доступные контейнеры для опции типа флажка
Опция типа флажка может быть создана внутри:
- Панель администратора
- Вкладки администратора
- Metabox
- Раздел настройки темы
Независимо от того, какой тип контейнера вы выберете, процесс добавления этого типа опции остается неизменным:
- Получить уникальный экземпляр с помощью функции
getInstance()
. - Добавьте опцию через
createOption()
. - Получить сохраненные значения с помощью функции
getOption()
.
Если вы хотите узнать, как эти контейнеры создаются в Titan Framework, обратитесь к предыдущим статьям этой серии.
Создание опции типа флажка внутри панели администратора
Пример объявления
Сначала я создам этот тип опции внутри панели администратора.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
<?php
/**
* Create the checkbox type option
*/
$aa_panel->createOption( array(
‘id’ => ‘aa_checkbox’, // The ID which will be used to get the value of this option
‘type’ => ‘checkbox’, // Type of option we are creating
‘name’ => ‘My Checkbox Option’, // Name of the option which will be displayed in the admin panel
‘desc’ => ‘This is our option’, // Description of the option which will be displayed in the admin panel
‘default’ => false //Default value of the option type
) );
|
Я создал опцию типа флажка внутри админ-панели $aa_panel
через createOption()
(строка # 5). Эта функция принимает массив параметров, и поэтому я добавил сюда некоторые необходимые параметры: имя, идентификатор, тип, значение по умолчанию и т. Д.
В этом типе опции id и default очень важны. «ID» (т. aa_checkbox
), который должен быть уникальным, получает сохраненные значения, а «default» указывает текущее состояние (т. aa_checkbox
или отключено) флажка во время его создания.
На приведенном выше снимке экрана показана checkbox
типа флажка с именем My Checkbox Option внутри административной панели Neat Options . Это изначально отключено, что соответствует значению по default
параметр.
Пример использования
Теперь я получу сохраненные значения параметров.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?php
// 1. Get the titan framework instance and save it to a variable
$titan = TitanFramework::getInstance( ‘neat’ );
// 2. Get the value via ID using getOption function
$aa_checkbox_val = $titan->getOption( ‘aa_checkbox’ );
/**
* Print the saved values
*/
if ($aa_checkbox_val == 1) {
echo ‘Checkbox type option in an admin panel is: Enabled’;
} else {
echo ‘Checkbox type option in an admin panel is: Disabled’;
}
?>
|
Будучи опцией включения / выключения типа, получение сохраненных значений несколько отличается. Опция checkbox
не похожа на ранее обсуждаемые типы, где значения могут быть непосредственно получены и напечатаны во внешнем интерфейсе.
Вместо этого этот тип параметра используется с некоторыми другими функциями темы. Например, вы можете разрешить пользователям включать или отключать логотип с помощью флажка, что означает, что все, что вам нужно сделать, это проверить, включен ли флажок или отключен, и обработать его соответствующим образом.
Итак, давайте посмотрим на код, написанный выше. В строке № 3 функция getInstance()
принимает уникальный параметр, предпочтительно имя вашей темы. Вот почему я использовал neat
Вот.
Затем в строке № 5 я использовал getOption()
, которая регистрирует идентификатор опции в качестве параметра и сохраняет его значение в новой переменной aa_checkbox_val
.
Еще одна вещь: checkbox
типа флажка является booloean
, то есть ее значение равно «true / false» или «1/0». Итак, чтобы объяснить его поведение, я написал простое утверждение if-else (строки с 11 по 15).
Если значение, хранящееся в переменной $aa_checkbox_val
равно 1, то Enabled
печатается. Это косвенно означает, что флажок отмечен. В противном случае Disabled
печатается на внешнем интерфейсе, который обозначает флажок без отметки или отключен.
Я использовал эту проверку if-else с целью объяснения; однако вы можете написать любой код в этом блоке.
Отображение результата во внешнем интерфейсе
Предположим, я проверил эту опцию и сохранил ее.
Согласно моему коду, этот тип настройки должен вывести « Опция типа флажка в админ-панели : Включено ».
Теперь я снимаю флажок, чтобы узнать, что отображается во внешнем интерфейсе. Вот его изображение:
Создание опции типа флажка внутри панели администратора
Пример объявления
Вот код для опции типа флажка на вкладке администратора:
01
02
03
04
05
06
07
08
09
10
11
12
|
<?php
// Create checkbox type option
$aa_tab1->createOption( array(
‘id’ => ‘aa_checkbox_in_tab1_panel2’, // IDs should always be unique.
‘type’ => ‘checkbox’, // Type of option we are creating
‘name’ => ‘My Checkbox Option’, // Name of the option which will be displayed in the admin panel
‘desc’ => ‘This is our option’, // Description of the option which will be displayed in the admin panel
‘default’ => false //Default value of the option type
) );
|
Я добавил опцию типа флажка с идентификатором aa_checkbox_in_tab1_panel2
на вкладке администратора $aa_tab1
. Вот его скриншот:
Вы можете найти эту опцию во вкладке 1 административной панели Neat Options 2 .
Пример использования
Давайте восстановим значения:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
<?php
// 1. Get the titan framework instance and save it to a variable
$titan = TitanFramework::getInstance( ‘neat’ );
// 2. Get the value via ID using getOption function
$aa_checkbox_in_tab1_panel2_val = $titan->getOption( ‘aa_checkbox_in_tab1_panel2’ );
/**
* Print the saved values
*/
if ( 1 == $aa_checkbox_in_tab1_panel2_val ) {
echo ‘Checkbox type option in an admin tab is: Enabled’;
} else {
echo ‘Checkbox type option in an admin tab is: Disabled’;
}
|
В строке № 3 я получаю уникальный экземпляр. Затем getOption()
(строка # 5) регистрирует идентификатор aa_checkbox_in_tab1_panel2
и сохраняет его значение в новой переменной aa_checkbox_in_tab1_panel2_val
.
Наконец, эта переменная используется внутри проверки if-else, чтобы напечатать настройку флажка во внешнем интерфейсе (строки с 11 по 15).
Отображение результата во внешнем интерфейсе
Предположим, я оставил эту опцию без отметки и сохранил ее. Внешний вид выглядит так:
Теперь вы можете включить его и просмотреть результат самостоятельно.
Создание опции типа флажка внутри метабокса
Пример объявления
Я собираюсь создать эту опцию в метабоксе.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
<?php
/**
* Create the checkbox type option
*/
$aa_metbox->createOption( array(
‘id’ => ‘aa_mb_checkbox’, // The ID which will be used to get the value of this option
‘type’ => ‘checkbox’, // Type of option we are creating
‘name’ => ‘My Checkbox Option’, // Name of the option which will be displayed
‘desc’ => ‘This is our option’, // Description of the option which will be displayed
‘default’ => false //Default option value
) );
|
На этот раз я создал опцию типа флажка внутри метабокса $aa_metbox
через createOption()
. Его идентификатор — aa_mb_checkbox
.
Вы можете найти опцию с именем My Checkbox Option внутри метабокса, отображаемого в конце экрана редактирования страницы (post_type). Тем не менее, он также появляется в области редактирования.
Пример использования
Теперь я получу сохраненные значения параметров:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
<?php
// 1. Get the titan framework instance and save it to a variable
$titan = TitanFramework::getInstance( ‘neat’ );
// 2. Get the value via ID using getOption function
$aa_mb_checkbox_val = $titan->getOption( ‘aa_mb_checkbox’, get_the_ID() );
/**
* Print the saved values
*/
if( 1 == $aa_mb_checkbox_val ) {
echo ‘Checkbox type option in a metabox is: Enabled’;
} else {
echo ‘Checkbox type option in a metabox is: Disabled’;
}
?>
|
Получение сохраненных значений параметров для параметра типа флажка в метабоксе — это почти тот же процесс. Единственная разница наблюдается в строке № 5, которая принимает дополнительный параметр, то есть функцию get_the_ID()
. Эта функция предназначена для получения идентификатора для конкретной страницы / записи или типа post_type.
Отображение результата во внешнем интерфейсе
На этот раз я проверил эту опцию в качестве настроек демо. Давайте загрузим то, что появляется в интерфейсе:
Попробуйте включить включенную часть примера самостоятельно. Это почти то же самое.
Создание параметра типа флажка внутри раздела Theme Customizer
Пример объявления
Наконец, давайте добавим эту опцию в настройщик темы.
01
02
03
04
05
06
07
08
09
10
11
12
|
<?php
/**
* Create the checkbox type option
*/
$aa_section1->createOption( array(
‘id’ => ‘aa_sec_checkbox’, // The ID which will be used to get the value of this option
‘type’ => ‘checkbox’, // Type of option we are creating
‘name’ => ‘My Checkbox Option’,// Name of the option which will be displayed
‘default’ => false // Default value of our option
) );
|
Опция типа флажка с идентификатором aa_sec_checkbox
существует в разделе настройщика темы $aa_section1
.
Вы можете найти My Checkbox Option в разделе настройщика темы под названием My Section .
Пример использования
Давайте наберем код для получения сохраненных значений:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?php
// 1. Get the titan framework instance and save it to a variable
$titan = TitanFramework::getInstance( ‘neat’ );
// 2. Get the value via ID using getOption function
$aa_sec_checkbox_val = $titan->getOption( ‘aa_sec_checkbox’ );
/**
*
* Print the saved values
*
*/
if( 1 == $aa_sec_checkbox_val ) {
echo ‘Checkbox type option in a customizer section is: Enabled’;
} else {
echo ‘Checkbox type option in a customizer section is: Disabled’;
}
?>
|
Еще раз, используйте ту же процедуру, чтобы получить сохраненные значения параметров. Но так как эта опция создается внутри настройщика темы, вы напишите этот код в своем файле header.php
и запустите его.
Отображение результата во внешнем интерфейсе
В конце я покажу живые изменения, которые происходят:
Вывод
Представьте, что вы создаете премиальную тему WordPress и на странице single.php вы хотите, чтобы конечный пользователь мог контролировать, должна ли тема:
- отобразить дату
- показать автора
- отобразить поле автора
- отображать количество комментариев
- показывать рекламу или связанный контент
Затем вы можете добавить несколько флажков и улучшить пользовательский опыт.
Попробуйте это и дайте мне знать, если у вас есть какие-либо вопросы. Комментарий ниже или обратитесь в Twitter .