Статьи

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

Ранее мы узнали, как вы можете разрешить пользователям включать несколько вариантов с multicheck type в Titan Framework. Теперь мы обсудим еще один вариант, который работает по принципу мульти-проверки, но может использоваться исключительно для существующих сообщений. Это multicheck-posts . Давайте рассмотрим его особенности и выясним, как с ним работать.

Titan Framework позволил отображать существующие веб-сообщения в виде параметров с помощью флажков. Это достигается путем создания multicheck-posts типа multicheck-posts . С помощью этой опции вы можете включить несколько флажков одновременно. Пользовательские типы сообщений также поддерживаются. В вашей приборной панели это выглядит так:

Добавление опций типа Multicheck-Posts в Titan

Давайте перечислим настройки параметров, которые поддерживает эта опция:

  • name : отображает имя multicheck-posts типа multicheck-posts .
  • id : этот параметр назначает уникальное имя, которое извлекает значения параметров.
  • desc : добавляет однострочное описание
  • default : (Необязательно) Этот параметр определяет массив идентификаторов проверенных записей по умолчанию.
  • post_type: (необязательно). Он управляет типом сообщений, которые отображаются в списке параметров в виде флажков. По умолчанию установлено post .
  • post_status: (Необязательно) Этот параметр управляет состоянием сообщений, отображаемых в списке параметров. Значением по умолчанию является any , но оно может быть установлено для публикации, ожидания, черновика и т. Д. Подробнее!
  • num: (Необязательно) Контролирует количество сообщений, отображаемых в поле выбора. По умолчанию установлено значение -1 что относится ко всем сообщениям.
  • orderby: (Необязательно) Порядок отображения перечисленных сообщений контролируется этим параметром. Настройка по умолчанию перечисляет их по post_date . Вы можете установить его на автора, идентификатор, название, тип и т. Д. Узнайте больше!
  • order: (Необязательно) Этот параметр решает, будет ли порядок отображения параметров по возрастанию ( asc ) или по убыванию ( desc ). По умолчанию установлено значение desc .

Параметр num имеет тип int а остальные являются string по типу.

Вы можете создать эту опцию внутри:

  • Панель администратора
  • Вкладки администратора
  • Metabox
  • Раздел настройки темы

Эти контейнеры созданы в Titan Framework. Хотите узнать как? Просмотрите предыдущие статьи этой серии.

Итак, позвольте мне перечислить шаги, чтобы добавить эту опцию внутри каждого контейнера:

  • Получить экземпляр с помощью функции getInstance() .
  • Добавьте опцию через createOption() .
  • Получить сохраненные значения с помощью функции getOption() .

Давайте сначала создадим эту опцию внутри админ-панели.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-posts type option in an Admin Panel
    *
    */
   $aa_panel->createOption( array(
 
       ‘id’ => ‘aa_multicheck_posts_opt’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-posts’, // Type of option we are creating
       ‘name’ => ‘Multicheck Posts 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
 
   ) );

Функция createOption() в строке # 8 добавляет multicheck-posts типа multicheck-posts в пользовательскую панель администратора $aa_panel . Эта функция занимает массив и где я определил некоторые параметры. Эти параметры, name, id, type и desc , добавляют самую базовую форму этой опции.

Позже в этой статье я также добавлю несколько сложных параметров.

Добавление опций мульти-проверки в Neat Options

На приведенном выше снимке экрана показана настраиваемая страница админ-панели Neat Options, внутри которой есть список флажков, показывающих все последние сообщения WordPress.

Давайте получим значения из этой опции.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<?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_getpostid_array = $titan->getOption( ‘aa_multicheck_posts_opt’ );
 
    /**
     *
     * Printing array contents
     *
     */
    var_dump( $aa_getpostid_array );
     
 ?>

Во-первых, получите уникальный экземпляр в строке # 3 с помощью функции getInstance() . Затем используйте getOption() в строке № 6. Зарегистрируйте идентификатор параметра aa_multicheck_posts_opt качестве его параметра и сохраните его в переменной, например, $aa_getpostid_array .

Когда пользователь включает несколько опций, это означает, что внутри переменной $aa_getpostid_array существует массив, содержащий выбранные пользователем идентификаторы $aa_getpostid_array . Итак, сначала мы проверим существование массива, напечатав его содержимое с помощью команды var_dump() в строке # 15. В качестве теста я включаю все пять вариантов.

Просмотр результатов опций мульти-проверки на внешнем интерфейсе

Приведенный выше снимок экрана четко печатает массив, который имеет пять записей, каждая из которых содержит идентификатор сообщения и его длину, например, первый элемент этого массива имеет « идентификатор сообщения = 9 ».

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<?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_getpostid_array = $titan->getOption( ‘aa_multicheck_posts_opt’ );
 
    /**
     * Printing individual array elements
     *
     */
    echo $aa_getpostid_array[0];
    echo $aa_getpostid_array[1];
     
 ?>

Первая часть этого кода точно такая же. Строки, которые печатают идентификаторы записей, отличаются. Строки 15 и 16 используют команду echo , каждая из которых содержит переменную для элементов массива ‘0’ и ‘1’.

Отображение элементов массива на внешнем интерфейсе

На скриншоте отображаются идентификаторы упомянутых элементов массива. Идентификатор поста из первого элемента равен 9, а идентификатор второго элемента массива — 11.

Кстати, я не собирался делать так, как будто я звоню 911 здесь!

Давайте теперь примем более профессиональный подход, где я буду печатать названия выбранных постов.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<?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_getpostid_array = $titan->getOption( ‘aa_multicheck_posts_opt’ );
 
// Get selected post titles by array ID
$aa_panel_getpost_title0_val = get_post_field(‘post_title’, $aa_getpostid_array[0]);
$aa_panel_getpost_title1_val = get_post_field(‘post_title’, $aa_getpostid_array[1]);
 
    /**
     *
     * Printing selected post titles
     *
     */
    echo $aa_panel_getpost_title0_val;
    echo $aa_panel_getpost_title1_val;
 
?>

Я добавил экземпляр, а затем сохранил значения параметров. В строке № 6 переменная $aa_getpostid_array содержит массив идентификаторов $aa_getpostid_array . Теперь, чтобы получить заголовки, я использую get_post_field() в строке № 9, которая содержит параметры post_title и $aa_getpostid_array[0] . Это означает, что заголовок сообщения для первого элемента массива $aa_panel_getpost_title0_val и сохраняется в новой переменной $aa_panel_getpost_title0_val .

То же самое объяснение применимо к строке № 10, за исключением того факта, что он получает заголовок сообщения для второго элемента массива, т.е. $aa_getpostid_array[1] .

Пока заголовки выбранных заголовков сообщений сохраняются в переменных $aa_panel_getpost_title0_val и $aa_panel_getpost_title1_val . Чтобы напечатать их во внешнем интерфейсе, я использую команды echo (строки 19 и 20).

Предположим, я выбрал следующие сообщения.

Добавление опций типа Multicheck-Posts в Titan

Вот скриншот заголовков постов для первого и второго элемента массива (я не добавил никаких <br/> , поэтому эти заголовки появляются в одной строке).

Просмотр результатов выбранных опций в интерфейсе

Затем создайте multicheck-posts на вкладке администратора.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<?php
   /**
    *
    * Create multicheck-posts type option in an Admin Tab
    *
    */
   $aa_tab1->createOption( array(
 
       ‘id’ => ‘aa_multicheck_posts_opt_in_tab’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-posts’, // Type of option we are creating
       ‘name’ => ‘Multicheck Posts Option’, // Name of the option which will be displayed in the admin panel
       ‘desc’ => ‘Posts which are pending for review.’, // Description of the option which will be displayed in the admin panel
       ‘post_status’ => ‘pending’ //Status of the displayed options
 
   ) );

Теперь я добавил эту опцию во вкладку администратора $aa_tab1 с идентификатором aa_multicheck_posts_opt_in_tab1 . Вы можете видеть, что есть новое дополнение в списке параметров (строка # 14). На этот раз я использовал параметр post_status , значение которого находится на pending . Теперь в списке опций будут показаны сообщения, ожидающие рассмотрения.

Добавление параметров мульти-проверки в интерфейс с вкладками

На скриншоте выше вы найдете два основных изменения. Во-первых, теперь в Tab 1 панели Neat Options 2 существует опция типа multicheck-posts . Во-вторых, в списке выбора меньше вариантов.

Давайте напишем его код, чтобы получить значения.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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_tab_getpostid_array = $titan->getOption( ‘aa_multicheck_posts_opt_in_tab’ );
 
// Get selected post titles by array ID
$aa_tab_getpost_title0_val = get_post_field(‘post_title’, $aa_tab_getpostid_array[0]);
$aa_tab_getpost_title1_val = get_post_field(‘post_title’, $aa_tab_getpostid_array[1]);
$aa_tab_getpost_title2_val = get_post_field(‘post_title’, $aa_tab_getpostid_array[2]);
 
    /**
     *
     * Printing selected post titles
     *
     */
    echo $aa_tab_getpost_title0_val;
    echo $aa_tab_getpost_title1_val;
    echo $aa_tab_getpost_title2_val;
     
 ?>

Этот код очень похож на то, что я написал в случае админ-панели. Разница в том, что теперь я печатал заголовки для первых трех элементов массива во внешнем интерфейсе.

Согласно коду, я должен включить все три опции публикации на моей панели инструментов, например так:

Выбор параметров мульти-проверки для интерфейса с вкладками

Заголовки печатаются так: (опять же, я не добавил никакого элемента <br/> чтобы избежать путаницы в коде).

Просмотр параметров мульти-проверки на внешнем интерфейсе

Далее мы добавим multicheck-posts типа multicheck-posts в метабокс.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-posts type option in a Metabox
    *
    */
   $aa_metbox->createOption( array(
 
       ‘id’ => ‘aa_multicheck_posts_opt_in_metabox’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-posts’, // Type of option we are creating
       ‘name’ => ‘Multicheck Posts Option’, // Name of the option which will be displayed
       ‘desc’ => ‘This is our option’ // Description of the option which will be displayed
 
   ) );

multicheck-posts типа с aa_multicheck_posts_opt_in_metabox multicheck-posts с идентификатором aa_multicheck_posts_opt_in_metabox добавлен в метабокс $aa_metbox . Он появляется на всех страницах и экранах редактирования постов.

Добавление параметров мульти-проверки в мета-поле

На этом изображении показан экран редактирования страницы, и в самом конце есть метабокс с именем « Опции мета-бокса» . Внутри него есть список веб-сообщений, отображаемых в виде флажков.

Давайте получим сохраненные значения.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<?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_metabox_getpostid_array = $titan->getOption( ‘aa_multicheck_posts_opt_in_metabox’, get_the_ID() );
 
// Get selected post titles by array ID
$aa_metabox_getpost_title0_val = get_post_field(‘post_title’, $aa_metabox_getpostid_array[0]);
 
    /**
     *
     * Printing selected post titles
     *
     */
    echo $aa_metabox_getpost_title0_val;
     
 ?>

На этот раз я написал код для печати заголовка сообщения только для первого элемента массива. Эта процедура опять та же, за исключением строки №6, где вы найдете два параметра, зарегистрированных внутри функции getOption() . Одним из них является идентификатор опции aa_multicheck_posts_opt_in_metabox а другим — get_the_ID() которая выбирает значения идентификатора для конкретной страницы или идентификатора записи.

Название элемента нулевого массива печатается так:

Просмотр результатов опций мульти-проверки на внешнем интерфейсе

Наконец, мы добавим multicheck-posts типа multicheck-posts в раздел настройщика темы.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-posts type option in a Theme Customizer Section
    *
    */
   $aa_section1->createOption( array(
 
       ‘id’ => ‘aa_multicheck_posts_opt_in_sec’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-posts’, // Type of option we are creating
       ‘name’ => ‘Multicheck Posts Option’, // Name of the option which will be displayed
       ‘desc’ => ‘This is our option’ // Description of the option which will be displayed
 
   ) );

Итак, я добавил multicheck-posts типа multicheck-posts в раздел настройщика темы $aa_section1 . Его уникальный идентификатор — aa_multicheck_posts_opt_in_sec .

Добавление нескольких флажков в настройщик

На приведенном выше снимке экрана вы можете найти этот параметр с именем Multicheck Posts Option в разделе настройщика My Section .

Используйте следующий код для получения значений.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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_getpostid_array = $titan->getOption( ‘aa_multicheck_posts_opt_in_sec’ );
 
// Get selected post titles by array ID
$aa_sec_getpost_title0_val = get_post_field(‘post_title’, $aa_sec_getpostid_array[0]);
$aa_sec_getpost_title1_val = get_post_field(‘post_title’, $aa_sec_getpostid_array[1]);
$aa_sec_getpost_title2_val = get_post_field(‘post_title’, $aa_sec_getpostid_array[2]);
$aa_sec_getpost_title3_val = get_post_field(‘post_title’, $aa_sec_getpostid_array[3]);
$aa_sec_getpost_title4_val = get_post_field(‘post_title’, $aa_sec_getpostid_array[4]);
 
    /**
     *
     * Printing selected post titles
     *
     */
    echo $aa_sec_getpost_title0_val;
    echo $aa_sec_getpost_title1_val;
    echo $aa_sec_getpost_title2_val;
    echo $aa_sec_getpost_title3_val;
    echo $aa_sec_getpost_title4_val;
     
 ?>

В этом последнем контейнере я печатаю заголовки всего массива, то есть всех пяти опций публикации. Детали одинаковы — отличаются только идентификатор и имена переменных.

Вот скриншот изменений, которые наблюдались в режиме предварительного просмотра.

Просмотр результатов нескольких флажков в настройщике

Мы продолжим эту статью, обсуждая multicheck-pages типа multicheck-pages в Titan Framework, которая функционирует почти так же, как multicheck-posts. Давайте посмотрим, как создать список из нескольких проверок доступных страниц WordPress в пользовательской панели администратора, метабоксе или настройщике.

С multicheck-pages типа multicheck-pages в Titan Framework вы можете отобразить набор флажков для всех существующих страниц. Вот как это выглядит:

Добавление параметров типа Multicheck-Pages в Titan

Этот параметр поддерживает некоторые параметры настройки:

  • name : назначает имя этой опции.
  • id : этот параметр указывает уникальное имя, которое получает сохраненные значения параметров.
  • desc : добавлено краткое описание с названием опции.
  • default : (Необязательно) Этот параметр является массивом, содержащим идентификаторы страниц включенных опций по умолчанию.

Параметр default является array по типу, в то время как остальные имеют string характер.

Эта опция может быть добавлена ​​в:

  • Панель администратора
  • Вкладки администратора
  • Metabox
  • Раздел настройки темы

Выполняйте эти шаги всякий раз, когда вы создаете multicheck-pages типа нескольких multicheck-pages в любом из этих контейнеров.

  • Сначала получите экземпляр с помощью функции getInstance() .
  • Затем добавьте параметр с помощью функции createOption() .
  • Наконец, получите сохраненные значения с помощью функции getOption() .

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

Давайте сначала создадим эту опцию внутри админ-панели.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-pages type option in an Admin Panel
    *
    */
   $aa_panel->createOption( array(
 
       ‘id’ => ‘aa_multicheck_pages_opt’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-pages’, // Type of option we are creating
       ‘name’ => ‘Multicheck Pages 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
 
   ) );

В строке № 8 createOption() добавляет multicheck-pages типа multicheck-pages в админ-панели $aa_panel . Он принимает массив параметров: name, id, type и desc . Отключить все это, ID (т.е. aa_multicheck_pages_opt ) очень важна, поскольку она будет использоваться для получения значения сохраненной опции. Вы должны всегда добавлять уникальное значение для ID.

Добавление Multicheck-страниц к нашим опциям

На изображении выше показан список существующих страниц с именем Multicheck Pages Option в админ-панели Neat Options .

Давайте получим сохраненные значения параметров.

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_getpageid_array = $titan->getOption( ‘aa_multicheck_pages_opt’ );
 
    /**
     *
     * Printing array contents
     *
     */
     
    var_dump( $aa_getpageid_array );
     
?>

В строке № 3 я добавил уникальный экземпляр с помощью функции getInstance() . Желательно зарегистрировать имя вашей темы в качестве параметра (вот почему я использовал здесь аккуратно ). Затем я использовал getOption() в строке № 6 для извлечения сохраненных значений и зарегистрировал идентификатор опции aa_multicheck_pages_opt качестве ее параметра. Наконец, это присваивается новой переменной $aa_getpageid_array .

Каждый раз, когда пользователь делает несколько вариантов выбора, массив, состоящий из идентификаторов страниц, сохраняется в переменной $aa_getpageid_array .

Чтобы напечатать значения, сначала мы проверим, присутствует ли массив или нет. Для этого я var_dump() все флажки на панели инструментов и распечатаю содержимое массива с помощью команды var_dump() (строка № 15).

Значениям страницы для мульти-проверки на внешнем интерфейсе

На изображении выше вы можете видеть, что содержимое массива было напечатано. Он состоит из четырех элементов (от 0 до 3), каждый из которых содержит идентификатор страницы и ее длину. Например, первый элемент имеет « идентификатор страницы = 19 ». Итак, наличие массива было проверено.

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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_getpageid_array = $titan->getOption( ‘aa_multicheck_pages_opt’ );
 
/**
 *
 * Printing individual array elements
 *
 */
?>
 
<div>
    Page ID of zero’th array element is : <?php echo $aa_getpageid_array[0];
</div>
 
 
<div>
    Page ID of one’th array element is : <?php echo $aa_getpageid_array[1];
</div>

Чтобы напечатать отдельные идентификаторы страницы, я выводил переменные нужных элементов массива отдельно в div (строки 16-23). Поэтому $aa_getpageid_array[0] печатает идентификатор страницы для первого элемента и $aa_getpageid_array[1] для второго элемента массива.

Добавление параметров типа Multicheck-Pages в Titan

Приведенное выше изображение отображает результаты печати на внешнем интерфейсе.

Это было в значительной степени основной материал. Как насчет изучения немного сложного подхода? Посмотрите на следующие строки кода:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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_getpageid_array = $titan->getOption( ‘aa_multicheck_pages_opt’ );
 
// Get selected page titles by array ID
$aa_panel_getpage_title0_val = get_post_field(‘post_title’, $aa_getpageid_array[0]);
$aa_panel_getpage_title1_val = get_post_field(‘post_title’, $aa_getpageid_array[1]);
 
/**
 *
 * Printing selected page titles
 *
 */
?>
  
<div>
    Page Title of zero’th array element is : <?php echo $aa_panel_getpage_title0_val;
</div>
 
 
<div>
    Page Title of one’th array element is : <?php echo $aa_panel_getpage_title1_val;
</div>

На этот раз я извлек названия выбранных страниц и распечатал их на внешнем интерфейсе. В строке № 9 заголовки страниц выбираются с помощью функции get_post_field() . Эта функция имеет два параметра: post_title и $aa_getpageid_array[0] . Поэтому заголовок страницы для первого элемента массива извлекается и сохраняется внутри переменной $aa_panel_getpage_title0_val . Аналогично в строке # 10, где я получил заголовок страницы для второго элемента массива (то есть $aa_getpageid_array[1] ).

Чтобы напечатать сохраненные заголовки страниц во $aa_panel_getpost_title0_val интерфейсе, я создал два $aa_panel_getpost_title0_val $aa_panel_getpost_title1_val (строки с 21 по 28), которые $aa_panel_getpost_title0_val результаты для переменных $aa_panel_getpost_title0_val и $aa_panel_getpost_title1_val .

Предположим, я включил следующие страницы.

Просмотр параметров проверки нескольких страниц на панели инструментов

Вот скриншот заголовков страниц для первого и второго элементов массива.

Просмотр параметров проверки нескольких страниц в интерфейсе

Далее я добавлю эту опцию на вкладке администратора.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-pages type option in an Admin Tab
    *
    */
   $aa_tab1->createOption( array(
 
       ‘id’ => ‘aa_multicheck_pages_opt_in_tab’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-pages’, // Type of option we are creating
       ‘name’ => ‘Multicheck Pages 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
 
   ) );

Теперь я добавил эту опцию во вкладку администратора $aa_tab1 . Все параметры одинаковы, кроме идентификатора aa_multicheck_pages_opt_in_tab .

Добавление параметров типа Multicheck-Pages в интерфейс с вкладками

На приведенном выше multicheck-pages экрана есть multicheck-pages типа нескольких multicheck-pages на вкладке 1 панели Neat Options 2 .

Давайте получим сохраненные значения.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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_tab_getpageid_array = $titan->getOption( ‘aa_multicheck_pages_opt_in_tab’ );
 
// Get selected page titles by array ID
$aa_tab_getpage_title0_val = get_post_field(‘post_title’, $aa_tab_getpageid_array[0]);
$aa_tab_getpage_title1_val = get_post_field(‘post_title’, $aa_tab_getpageid_array[1]);
$aa_tab_getpage_title2_val = get_post_field(‘post_title’, $aa_tab_getpageid_array[2]);
 
/**
 *
 * Printing selected page titles
 *
 */
?>
 
 <div>
    Page Title of zero’th array element is : <?php echo $aa_tab_getpage_title0_val;
 </div>
 
 
 <div>
    Page Title of one’th array element is : <?php echo $aa_tab_getpage_title1_val;
 </div>
 
  
 <div>
    Page Title of two’th array element is : <?php echo $aa_tab_getpage_title2_val;
 </div>

В строках с 3 по 6 я извлек экземпляр и сохранил значения параметров. Затем я получил выбранные заголовки страниц для первых трех элементов массива (строки с 9 по 11). В конце я напечатал названия во внешнем интерфейсе с помощью команды echo внутри тегов divs .

Я сохранил код простым, чтобы помочь вам понять, как все работает, но не рекомендуется печатать элементы массива, не проверяя их наличие.

Я включил первые три разных варианта страницы из моей панели, например:

Выбор нескольких проверенных страниц на сайте

Внешний интерфейс должен отображать заголовок так:

Просмотр результатов выбранных страниц параметров в интерфейсе

Давайте добавим multicheck-pages типа multicheck-pages в метабокс.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-pages type option in a Metabox
    *
    */
   $aa_metbox->createOption( array(
 
       ‘id’ => ‘aa_multicheck_pages_opt_in_metabox’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-pages’, // Type of option we are creating
       ‘name’ => ‘Multicheck Pages Option’, // Name of the option which will be displayed
       ‘desc’ => ‘This is our option’ // Description of the option which will be displayed
 
   ) );

Теперь я добавил multicheck-pages типа multicheck-pages с идентификатором aa_multicheck_pages_opt_in_metabox внутри metabox $aa_metbox .

Добавление параметров мульти-проверки в мета-поле

На изображении вы можете увидеть вариант Multicheck Pages   внутри метабокса с именем Metabox Options   на странице редактирования страницы.

Используйте следующий код для получения значений.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<?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_metabox_getpageid_array = $titan->getOption( ‘aa_multicheck_pages_opt_in_metabox’, get_the_ID() );
 
// Get selected page titles by array ID
$aa_metabox_getpage_title0_val = get_post_field(‘post_title’, $aa_metabox_getpageid_array[0]);
 
/**
 *
 * Printing selected page titles
 *
 */
?>
 
 <div>
    Page Title of zero’th array element is : <?php echo $aa_metabox_getpage_title0_val;
 </div>

Этот код печатает заголовок страницы только для элемента нулевого массива. Все шаги одинаковы, за исключением строки №6, где вы найдете новый параметр, зарегистрированный внутри функции getOption() . Это get_the_ID() которая получает значение для определенной страницы или идентификатора записи.

Заголовок страницы элемента нулевого массива печатается так:

Отображение результата выбора флажка

В конце я добавлю multicheck-pages типа multicheck-pages в раздел настройщика.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-pages type option in a Theme Customizer Section
    *
    */
   $aa_section1->createOption( array(
 
       ‘id’ => ‘aa_multicheck_pages_opt_in_sec’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-pages’, // Type of option we are creating
       ‘name’ => ‘Multicheck Pages Option’, // Name of the option which will be displayed
       ‘desc’ => ‘This is our option’ // Description of the option which will be displayed
 
   ) );

Этот код создает multicheck-pages типа multicheck-pages внутри секции настройщика темы $aa_section1 . Его уникальный идентификатор — aa_multicheck_pages_opt_in_sec .

Добавление параметров типа Multicheck-Pages в настройщик

На рисунке показан список существующих страниц в разделе настроек под названием « Мой раздел» .

Используйте этот код.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?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_getpageid_array = $titan->getOption( ‘aa_multicheck_pages_opt_in_sec’ );
 
// Get selected page titles by array ID
$aa_sec_getpage_title0_val = get_post_field(‘post_title’, $aa_sec_getpageid_array[0]);
$aa_sec_getpage_title1_val = get_post_field(‘post_title’, $aa_sec_getpageid_array[1]);
$aa_sec_getpage_title2_val = get_post_field(‘post_title’, $aa_sec_getpageid_array[2]);
$aa_sec_getpage_title3_val = get_post_field(‘post_title’, $aa_sec_getpageid_array[3]);
 
/**
 *
 * Printing selected page titles
 *
 */
?>
 
<div>
    Page Title of 0’th array element is : <?php echo $aa_sec_getpage_title0_val;
</div>
 
 
<div>
    Page Title of 1’th array element is : <?php echo $aa_sec_getpage_title1_val;
</div>
 
 
<div>
    Page Title of 2’th array element is : <?php echo $aa_sec_getpage_title2_val;
</div>
 
 
<div>
    Page Title of 3’th array element is : <?php echo $aa_sec_getpage_title3_val;
</div>

На этот раз я напечатал названия всех существующих страниц. Весь код практически одинаков. Только ID и имена переменных различны.

Вот скриншот изменений в режиме предварительного просмотра.

Просмотр параметров типа Multicheck-Pages в настройщике

Есть несколько способов, которыми вы можете реализовать эту опцию. Например, что если вы хотите, чтобы конечный пользователь полностью контролировал, какая страница должна отображаться для определенной роли пользователя, а какая страница должна быть ограничена?

Наконец, давайте обсудим тип опции, который напрямую связан с опцией типа multiheck в Titan Framework. Это позволяет отображать все существующие категории с помощью флажков. Я говорю о multicheck-categories . Давайте узнаем, как эта опция работает в пользовательской панели администратора, в метабоксе и разделе настройщика темы.

В Titan Framework вы можете создавать и включать несколько флажков для всех существующих категорий. Это возможно с multicheck-categories типа multicheck-categories . Он также поддерживает разные таксономии. В вашей приборной панели это выглядит так:

Добавление параметров типа Multicheck-категорий в Titan

Давайте перечислим параметры, которые поддерживает эта опция:

  • name : указывает отображаемое имя опции.
  • id : этот параметр определяет уникальное имя, которое извлекает сохраненные значения.
  • desc : добавляет однострочное описание с именем опции.
  • default : (необязательно). Он занимает массив идентификаторов категорий, которые включены по умолчанию.
  • orderby : (Необязательно) Этот параметр определяет порядок категорий, в которых они появляются. По умолчанию установлено name . Вы можете изменить это соответственно.
  • порядок : (необязательно). В нем перечислены категории в порядке возрастания или убывания. По умолчанию установлено значение asc .
  • таксономия : (Необязательно) Этот параметр отображает тип таксономии, который вы хотите показать. Значением по умолчанию является category .
  • hide_empty : (Необязательно) Если для этого параметра установлено значение true , все категории и / или таксономии, у которых нет сообщений, не будут отображаться. Значением по умолчанию является false .
  • show_count : (необязательно). Этот параметр отображает количество сообщений в каждой категории, если установлено значение true . По умолчанию установлено значение false .

Последние два параметра, hide_empty и show_count , являются boolean , по умолчанию это array , а остальные являются string по типу.

Давайте перечислим контейнеры, в которые вы можете добавить эту опцию:

  • Панель администратора
  • Вкладки администратора
  • Metabox
  • Раздел настройки темы

Независимо от типа контейнера, multicheck-categories добавляется с помощью следующих шагов:

  • Сначала получите экземпляр через функцию getInstance() .
  • Затем добавьте параметр через createOption() .
  • Затем получите сохраненные значения параметров с помощью функции getOption() .

Давайте сначала создадим эту опцию внутри админ-панели.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-categories type option in an Admin Panel
    *
    */
   $aa_panel->createOption( array(
 
        ‘id’ => ‘aa_multicheck_categories_opt’, // The ID which will be used to get the value of this option
        ‘type’ => ‘multicheck-categories’, // Type of option we are creating
        ‘name’ => ‘Multicheck Categories 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
 
   ) );

В строке № 8 createOption() добавляет multicheck-categories типа multicheck-categories в административной панели $aa_panel . Внутри этой функции я определил некоторые основные параметры, которые поддерживаются в этой опции. Это параметры name, id, type и desc . Значение идентификатора (т.е. aa_multicheck_categories_opt ) всегда должно быть уникальным.

Добавление опций типа Multicheck-Categories к опциональным опциям

На рисунке показана эта опция внутри админ панели Neat Options .

Давайте напишем код, чтобы получить сохраненные значения параметров.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<?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_getcategoryid_array = $titan->getOption( ‘aa_multicheck_categories_opt’ );
 
    /**
     *
     * Printing array contents
     *
     */
    var_dump( $aa_getcategoryid_array );
     
?>

Поскольку этот параметр позволяет конечным пользователям включать несколько категорий, массив идентификаторов категорий будет возвращен им. Чтобы напечатать этот массив, я получил экземпляр через функцию getInstance() в строке # 3. Затем я использовал getOption() в строке № 6, чтобы получить сохраненные значения. Эта функция регистрирует идентификатор aa_multicheck_categories_opt качестве своего параметра и сохраняет результат в переменной $aa_getcategoryid_array . Наконец, мы распечатаем его содержимое с помощью команды var_dump() .

Идеальным вариантом было бы включить все флажки и сохранить настройки.

Выбор всех категорий мульти-проверки

Так печатается массив.

Просмотр всех значений мульти-проверки на внешнем интерфейсе

На приведенном выше снимке экрана показан массив, состоящий из пяти элементов. Каждый элемент отображает идентификатор категории и ее длину (что не имеет значения). Например, элемент нулевого массива имеет « ID категории = 4 ».

Давайте напечатать названия категорий сейчас.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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_getcategoryid_array = $titan->getOption( ‘aa_multicheck_categories_opt’ );
 
// Get selected categories titles by array ID
$aa_panel_getcategory_title0_val = get_cat_name( $aa_getcategoryid_array[0] );
$aa_panel_getcategory_title1_val = get_cat_name( $aa_getcategoryid_array[1] );
 
/**
 *
 * Print selected categories Names
 *
 */
?>
 
 <div>
    Category Title for the zero’th array element is: <?php echo $aa_panel_getcategory_title0_val;
 </div>
 
 
 <div>
     Category Title for the one’th array element is: <?php echo $aa_panel_getcategory_title1_val;
 </div>

В строках с 3 по 6 я зарегистрировал экземпляр и получил значения опции. До этого момента идентификаторы выбранных категорий сохраняются в массиве $aa_getcategoryid_array .

Предположим, я хочу напечатать имена включенных категорий в интерфейсе. Для этого я использовал get_cat_name() в строке № 9, которая извлекает имя категории для идентификатора элемента нулевого массива из переменной $aa_getcategoryid_array[0] . Я повторил этот процесс снова в строке # 10, которая получает заголовок для первого элемента массива, то есть $aa_getcategoryid_array[1] .

Наконец, чтобы напечатать сохраненные заголовки, я создал два div, и там я повторил каждое имя отдельно   (строки с 21 по 27).

Чтобы напечатать заголовки для нулевого и первого элементов массива, я должен включить две такие категории.

Выбор категорий для вариантов мульти-проверки

На переднем крае названия категорий печатаются так:

Печать результатов опций мульти-проверки на внешнем интерфейсе

Теперь я создам эту опцию на вкладке администратора.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
<?php
   /**
    *
    * Create multicheck-categories type option in an Admin Tab
    *
    */
   $aa_tab1->createOption( array(
 
       ‘id’ => ‘aa_multicheck_categories_opt_in_tab’, // The ID which will be used to get the value of this option
       ‘type’ => ‘multicheck-categories’, // Type of option we are creating
       ‘name’ => ‘Multicheck Categories 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
       ‘order’ => ‘desc’, // Display order of the categories
       ‘show_count’ => ‘true’ // Display no.
 
   ) );

Я добавил multicheck-categories типа multicheck-categories на вкладке администратора $aa_tab1 . Его идентификатор — aa_multicheck_categories_opt_in_tab . Но на этот раз я добавил несколько новых параметров, то есть параметры order и show_count . Я перечисляю категории в порядке убывания с show_count установленным в true, который будет отображать количество постов в каждой категории.

Добавление категорий мульти-проверки в интерфейс с вкладками

Теперь эту опцию можно увидеть внутри вкладки 1 панели Neat Options 2 . Порядок отображения категорий также отличается от show_count параметр show_count отображает количество сообщений в каждой категории.

Используйте этот код, чтобы получить сохраненные значения.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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_tab_getcategoryid_array = $titan->getOption( ‘aa_multicheck_categories_opt_in_tab’ );
 
// Get selected categories titles by array ID
$aa_tab_getcategory_title0_val = get_cat_name( $aa_tab_getcategoryid_array[0] );
$aa_tab_getcategory_title1_val = get_cat_name( $aa_tab_getcategoryid_array[1] );
$aa_tab_getcategory_title2_val = get_cat_name( $aa_tab_getcategoryid_array[2] );
 
/**
 *
 * Print selected categories titles
 *
 */
?>
 
 <div>
     Category Title for the 0’th array element is: <?php echo $aa_tab_getcategory_title0_val;
 </div>
  
 
 <div>
    Category Title for the 1’th array element is: <?php echo $aa_tab_getcategory_title1_val;
 </div>
  
  
 <div>
    Category Title for the 2’th array element is: <?php echo $aa_tab_getcategory_title2_val;
 </div>

Используя этот код, я напечатал заголовки для трех последовательных элементов массива. Основная часть кода очень похожа, поэтому я пишу краткое изложение шагов:

  • Получить экземпляр в строке # 3.
  • Используйте getOption()функцию в строке № 6, чтобы получить сохраненные значения по идентификатору.
  • Получить имена выбранных категорий для элементов массива 0, 1 и 2 с помощью get_cat_name()функции в строках 9–11.
  • Напечатайте имена категорий во внешнем интерфейсе с помощью echoкоманды внутри div (строки с 22 по 31).

Названия были напечатаны так:

Просмотр результатов в интерфейсе

Далее я создам эту опцию внутри метабокса.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-categories type option in a Metabox
    *
    */
   $aa_metbox->createOption( array(
 
       'id' => 'aa_multicheck_categories_opt_in_metabox', // The ID which will be used to get the value of this option
       'type' => 'multicheck-categories', // Type of option we are creating
       'name' => 'Multicheck Categories Option', // Name of the option which will be displayed
       'desc' => 'This is our option' // Description of the option which will be displayed
        
   ) );

Теперь я создал эту опцию в метабоксе $aa_metbox. Его уникальный идентификатор aa_multicheck_categories_opt_in_metabox. Остальные параметры одинаковы.

Добавление категорий мульти-проверки в мета-поле

На приведенном выше снимке экрана есть экран редактирования страницы, и в конце концов, существует multicheck-categoriesопция типа с именем Multicheck Categories Option .

Используйте следующий код, чтобы получить сохраненные значения.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<?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_metabox_getcategoryid_array = $titan->getOption( 'aa_multicheck_categories_opt_in_metabox', get_the_ID() );
 
// Get selected categories titles by array ID
$aa_metabox_getcategory_title0_val = get_cat_name( $aa_metabox_getcategoryid_array[0] );
 
/**
 *
 * Print selected Category name
 *
 */
 ?>
 
 <div>
    ?>
 </div>

Этот код печатает имя категории только для элемента нулевого массива. Но вы увидите изменение в строке № 6. Существует новый параметр внутри getOption()функции. Это get_the_ID()функция, которая используется для получения определенной страницы или идентификатора записи.

Внешний интерфейс печатает заголовок следующим образом:

Просмотр результатов мульти-флажка в интерфейсе

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
<?php
   /**
    *
    * Create multicheck-categories type option in a Theme Customizer Section
    *
    */
   $aa_section1->createOption( array(
 
       'id' => 'aa_multicheck_categories_opt_in_sec', // The ID which will be used to get the value of this option
       'type' => 'multicheck-categories', // Type of option we are creating
       'name' => 'Multicheck Categories Option', // Name of the option which will be displayed
       'desc' => 'This is our option' // Description of the option which will be displayed
        
   ) );

Я создал multicheck-categoriesопцию типа в разделе настройщика темы $aa_section1. Его идентификатор есть aa_multicheck_categories_opt_in_sec.

Добавление категорий мульти-проверки в настройщик

Вы можете найти список флажков, отображающих существующие категории, в разделе настройщика под названием « Мой раздел» .

Используйте этот код.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?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_getcategoryid_array = $titan->getOption( 'aa_multicheck_categories_opt_in_sec' );
 
// Get selected categories titles by array ID
$aa_sec_getcategory_title0_val = get_cat_name( $aa_sec_getcategoryid_array[0] );
$aa_sec_getcategory_title1_val = get_cat_name( $aa_sec_getcategoryid_array[1] );
$aa_sec_getcategory_title2_val = get_cat_name( $aa_sec_getcategoryid_array[2] );
$aa_sec_getcategory_title3_val = get_cat_name( $aa_sec_getcategoryid_array[3] );
$aa_sec_getcategory_title4_val = get_cat_name( $aa_sec_getcategoryid_array[4] );
 
/**
 *
 * Print selected categories titles
 *
 */
 ?>
 
 <div>
    ?>
 </div>
  
 
 <div>
    ?>
 </div>
  
 
 <div>
    ?>
 </div>
 
 
 <div>
     ?>
 </div>
  
 
 <div>
    ?>
 </div>

На этот раз я печатаю названия для всех пяти существующих категорий, следуя той же процедуре, которую я упомянул выше.

Вот скриншот изменений, которые наблюдались в режиме предварительного просмотра.

Просмотр категорий нескольких проверок в настройщике

Этот конкретный тип может быть использован во всех видах творческих пользовательских дел. Например, предположим, что вы хотите создать тему, которая содержит различные разделы на домашней странице. Теперь вы хотите, чтобы конечные пользователи могли выбирать сообщения из любой категории в определенном разделе.

Некоторые другие практические примеры:

  • позволяя конечным пользователям выбирать посты из разных категорий для отображения на слайдере или боковой панели
  • возможность удалять сообщения из всех выбранных категорий или наоборот

Итак, вот как вы можете использовать multicheckопцию типа с Titan Framework. Я упомянул только самые простые способы интеграции этой опции в ваш проект. Тем не менее, есть другие творческие и гораздо лучшие способы сделать это.

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

Если у вас есть какие-либо вопросы, пишите в комментариях или обращайтесь в Twitter .