Ранее мы узнали, как вы можете разрешить пользователям включать несколько вариантов с multicheck
type в Titan Framework. Теперь мы обсудим еще один вариант, который работает по принципу мульти-проверки, но может использоваться исключительно для существующих сообщений. Это multicheck-posts
. Давайте рассмотрим его особенности и выясним, как с ним работать.
Опция типа Multicheck-Posts в Titan Framework
Titan Framework позволил отображать существующие веб-сообщения в виде параметров с помощью флажков. Это достигается путем создания multicheck-posts
типа multicheck-posts
. С помощью этой опции вы можете включить несколько флажков одновременно. Пользовательские типы сообщений также поддерживаются. В вашей приборной панели это выглядит так:
Давайте перечислим настройки параметров, которые поддерживает эта опция:
- 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
по типу.
Доступные контейнеры для опции типа Multicheck-Posts
Вы можете создать эту опцию внутри:
- Панель администратора
- Вкладки администратора
- Metabox
- Раздел настройки темы
Эти контейнеры созданы в Titan Framework. Хотите узнать как? Просмотрите предыдущие статьи этой серии.
Итак, позвольте мне перечислить шаги, чтобы добавить эту опцию внутри каждого контейнера:
- Получить экземпляр с помощью функции
getInstance()
. - Добавьте опцию через
createOption()
. - Получить сохраненные значения с помощью функции
getOption()
.
Создание опции типа Multicheck-Posts внутри панели администратора
Пример объявления
Давайте сначала создадим эту опцию внутри админ-панели.
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, внутри которой есть список флажков, показывающих все последние сообщения 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).
Отображение результата во внешнем интерфейсе
Предположим, я выбрал следующие сообщения.
Вот скриншот заголовков постов для первого и второго элемента массива (я не добавил никаких <br/>
, поэтому эти заголовки появляются в одной строке).
Создание опции типа Multicheck-Posts внутри вкладки администратора
Пример объявления
Затем создайте 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 внутри Metabox
Пример объявления
Далее мы добавим 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 внутри раздела Theme Customizer
Пример объявления
Наконец, мы добавим 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 в Titan Framework
С multicheck-pages
типа multicheck-pages
в Titan Framework вы можете отобразить набор флажков для всех существующих страниц. Вот как это выглядит:
Этот параметр поддерживает некоторые параметры настройки:
- name : назначает имя этой опции.
- id : этот параметр указывает уникальное имя, которое получает сохраненные значения параметров.
- desc : добавлено краткое описание с названием опции.
- default : (Необязательно) Этот параметр является массивом, содержащим идентификаторы страниц включенных опций по умолчанию.
Параметр default является array
по типу, в то время как остальные имеют string
характер.
Доступные контейнеры для опции типа Multicheck-Pages
Эта опция может быть добавлена в:
- Панель администратора
- Вкладки администратора
- Metabox
- Раздел настройки темы
Выполняйте эти шаги всякий раз, когда вы создаете multicheck-pages
типа нескольких multicheck-pages
в любом из этих контейнеров.
- Сначала получите экземпляр с помощью функции
getInstance()
. - Затем добавьте параметр с помощью функции
createOption()
. - Наконец, получите сохраненные значения с помощью функции
getOption()
.
Если вы не знаете, как были созданы эти контейнеры с помощью Titan Framework, вы можете обратиться к предыдущим статьям этой серии. Вы найдете все соответствующие детали.
Создание параметра типа Multicheck-Pages внутри панели администратора
Пример объявления
Давайте сначала создадим эту опцию внутри админ-панели.
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 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]
для второго элемента массива.
Приведенное выше изображение отображает результаты печати на внешнем интерфейсе.
Это было в значительной степени основной материал. Как насчет изучения немного сложного подхода? Посмотрите на следующие строки кода:
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
.
Отображение результата во внешнем интерфейсе
Предположим, я включил следующие страницы.
Вот скриншот заголовков страниц для первого и второго элементов массива.
Создание параметра типа Multicheck-Pages внутри вкладки администратора
Пример объявления
Далее я добавлю эту опцию на вкладке администратора.
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
на вкладке 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 внутри Metabox
Пример объявления
Давайте добавим 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 внутри раздела Theme Customizer
Пример объявления
В конце я добавлю 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
.
На рисунке показан список существующих страниц в разделе настроек под названием « Мой раздел» .
Пример использования
Используйте этот код.
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-Categories в Titan Framework
Наконец, давайте обсудим тип опции, который напрямую связан с опцией типа multiheck в Titan Framework. Это позволяет отображать все существующие категории с помощью флажков. Я говорю о multicheck-categories
. Давайте узнаем, как эта опция работает в пользовательской панели администратора, в метабоксе и разделе настройщика темы.
В Titan Framework вы можете создавать и включать несколько флажков для всех существующих категорий. Это возможно с multicheck-categories
типа multicheck-categories
. Он также поддерживает разные таксономии. В вашей приборной панели это выглядит так:
Давайте перечислим параметры, которые поддерживает эта опция:
- name : указывает отображаемое имя опции.
- id : этот параметр определяет уникальное имя, которое извлекает сохраненные значения.
- desc : добавляет однострочное описание с именем опции.
- default : (необязательно). Он занимает массив идентификаторов категорий, которые включены по умолчанию.
- orderby : (Необязательно) Этот параметр определяет порядок категорий, в которых они появляются. По умолчанию установлено
name
. Вы можете изменить это соответственно. - порядок : (необязательно). В нем перечислены категории в порядке возрастания или убывания. По умолчанию установлено значение
asc
. - таксономия : (Необязательно) Этот параметр отображает тип таксономии, который вы хотите показать. Значением по умолчанию является
category
. - hide_empty : (Необязательно) Если для этого параметра установлено значение
true
, все категории и / или таксономии, у которых нет сообщений, не будут отображаться. Значением по умолчанию являетсяfalse
. - show_count : (необязательно). Этот параметр отображает количество сообщений в каждой категории, если установлено значение
true
. По умолчанию установлено значениеfalse
.
Последние два параметра, hide_empty и show_count , являются boolean
, по умолчанию это array
, а остальные являются string
по типу.
Доступные контейнеры для опции типа Multicheck-Categories
Давайте перечислим контейнеры, в которые вы можете добавить эту опцию:
- Панель администратора
- Вкладки администратора
- Metabox
- Раздел настройки темы
Независимо от типа контейнера, multicheck-categories
добавляется с помощью следующих шагов:
- Сначала получите экземпляр через функцию
getInstance()
. - Затем добавьте параметр через
createOption()
. - Затем получите сохраненные значения параметров с помощью функции
getOption()
.
Создание параметра типа Multicheck-Categories внутри панели администратора
Пример объявления
Давайте сначала создадим эту опцию внутри админ-панели.
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
) всегда должно быть уникальным.
На рисунке показана эта опция внутри админ панели 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).
Отображение результата во внешнем интерфейсе
Чтобы напечатать заголовки для нулевого и первого элементов массива, я должен включить две такие категории.
На переднем крае названия категорий печатаются так:
Создание параметра типа Multicheck-Categories на вкладке Admin
Пример объявления
Теперь я создам эту опцию на вкладке администратора.
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).
Отображение результата во внешнем интерфейсе
Названия были напечатаны так:
Создание опции типа Multicheck-Categories внутри Metabox
Пример объявления
Далее я создам эту опцию внутри метабокса.
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()
функция, которая используется для получения определенной страницы или идентификатора записи.
Отображение результата во внешнем интерфейсе
Внешний интерфейс печатает заголовок следующим образом:
Создание параметра типа Multicheck-Categories в разделе настройщика тем
Пример объявления
Наконец, давайте создадим эту опцию в разделе настройщика темы.
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 .