Статьи

Руководство для начинающих по Titan Framework: добавление опции типа флажка

Темы WordPress стали динамичными, и большая часть их контроля находится в руках пользователя. Сегодня управление и настройка параметров темы стало довольно простым. Одна из самых удобных опций, которая может включать или отключать любые функции вашей темы одним щелчком мыши, это флажок. Я уверен, что вы сталкивались с несколькими сценариями кодирования, которые создают эту опцию, но как насчет изучения быстрого способа сделать это? Давайте обсудим, как Titan Framework помогает добавить опцию типа флажка.

Titan Framework позволяет своим пользователям добавлять опцию типа флажка, которая выглядит следующим образом:

Добавление опций типа флажка в Titan

Тип опции 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.

На этот раз я проверил эту опцию в качестве настроек демо. Давайте загрузим то, что появляется в интерфейсе:

Результат проверки флажка из мета-поля

Попробуйте включить включенную часть примера самостоятельно. Это почти то же самое.

Наконец, давайте добавим эту опцию в настройщик темы.

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 .