Плагин Carbon fields. Часть 3 – Типы условий

Автор: | 29 октября, 2019

Напомню, что в прошлой статье я рассказала о том, как использовать плагин Carbon fields, в частности о методе создания контейнера Container:: make ($type, $title), и условных отображениях с помощью одного из следующих методов:

 

->where( $condition, $comparison_operator, $value )- добавляет условие с AND (и)

->or_where( $condition, $comparison_operator, $value )- добавляет состояние OR (или ).

 

Сегодня я подробнее остановлюсь на имени типа условий $condition

Итак, какие бывают типы условий (Condition Types).

post_meta (произвольные поля)

Контейнер будет отображаться на страницах редактирования постов (записей, страниц, произвольных типов записей)

Плагин Carbon fields. Часть 3 – Типы условий

Пример

// Отобразить container на странице с id=2

 

use Carbon_Fields\Container;

use Carbon_Fields\Field;

Container::make( 'post_meta', __( 'Homepage Settings' ) )

->where( 'post_type', '=', 'page' )

->where( 'post_id', '=', '2' )

->add_fields(array(

Field::make('text', 'crb_custom_text'),

Field::make('image', 'crb_photo'),

));

 

Вот, что должно получиться

Плагин Carbon fields. Часть 3 – Типы условий

term_meta (таксономии)

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

term_meta (таксономии)

Пример

// Отображение контейнера в таксономии категорий книг

 

Container::make( 'post_meta', __( 'Book Category Data' ) )

->where( 'term_taxonomy', '=', 'crb_book_category' )

->add_fields( array( .. ) );

 

User Meta (пользователи)
Для редактирования учетных записей пользователей.

carbon fields

Пример

// Отображение контейнера только для администраторов

 

Container::make( 'post_meta', __( 'Administrator' ) )

->where( 'user_role', '=', 'administrator' )

->add_fields( array( .. ) );

 

theme_options

carbon fields

Доступные условия

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

carbon fields

Пример

Параметры отображения темы страницы для пользователей, которые имеют возможности ‘manage_options’

 

Container::make( 'theme_options', __( 'Theme Options' ) )

->where( 'current_user_capability', '=', 'manage_options' )

->add_fields( array( .. ) )

 

Описание терминов
Условия, связанные с терминами, предполагают, что вы предоставляете им описание термина в качестве значения (массив дескрипторов термина для операторов IN и NOT IN).
Дескриптор термина — это массив, который имеет следующие ключи:

carbon fields

Пример использования

 

Container::make( 'post_meta', 'Custom Data' )

->where( 'post_term', '=', array(

'field' => 'slug',

'value' => 'featured',

'taxonomy' => 'category',

) )

 

Вкладки

Вкладки позволяют группировать несколько полей под разными панелями вкладок с помощью контейнерного метода add_tab ().

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

Пример:

 

use Carbon_Fields\Container;
use Carbon_Fields\Field;

Container::make( 'post_meta', __( 'User Settings' ) )
->where( 'post_type', '=', 'page' )
->add_tab( __( 'Profile' ), array(
Field::make( 'text', 'crb_first_name', __( 'First Name' ) ),
Field::make( 'text', 'crb_last_name', __( 'Last Name' ) ),
Field::make( 'text', 'crb_position', __( 'Position' ) ),
) )
->add_tab( __( 'Notification' ), array(
Field::make( 'text', 'crb_email', __( 'Notification Email' ) ),
Field::make( 'text', 'crb_phone', __( 'Phone Number' ) ),
) );

 

Здесь мы добавили текстовые вкладки в контейнер, который будет отображаться на странице записей. Вот как это выглядит:

carbon fields

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *