Продолжаем изучать плагин для создания произвольных полей Carbon fields. Сегодня рассмотрим контейнеры Comment Meta и  Term Meta.

Comment Meta

Контейнеры Comment meta добавляют дополнительные поля на экраны редактирования комментариев. Данные поля хранятся отдельно для каждого комментария как мета-данные комментария. Откроем файл theme-option.php и добавим два текстовых поля на страницу редактирования комментариев. Для этого внесем в файл следующие строки:
use Carbon_Fields\Container; use Carbon_Fields\Field; Container::make( ‘comment_meta’, __( ‘Comment Information’ ) ) ->add_fields( array( Field::make( ‘text’, ‘crb_comment_rating’, __( ‘Comment Rating’ ) ), Field::make( ‘text’, ‘crb_comment_additional_info’, __( ‘Additional Comment Information’ ) ), ) );
  Откроем вкладку «комментарии» в админ-панели и увидим: Carbon fields Comment Meta

Доступ к значениям полей

Для доступа к значениям полей необходимо использовать функцию carbon_get_comment_meta ($comment_id, $name), где: $comment_id  – идентификатор комментария, где было введено значение. $name  – имя шаблона поля, которое должно быть получено. Вставим следующий код в файл comment.php в то место где бы мы хотели видеть эти дополнительные поля.
<?php $comments = get_comments( array( ‘post_id’ => get_the_ID(), ) ); foreach ( $comments as $comment ) { $comment_additional_info = carbon_get_comment_meta( $comment->comment_ID, ‘crb_comment_additional_info’ ); $comment_rating    = carbon_get_comment_meta( $comment->comment_ID, ‘crb_comment_rating’ ); if ( ! empty( $comment_additional_info ) ) { echo $comment_additional_info . ‘ <br> ‘; } if ( ! empty( $comment_rating ) ) { echo ‘Rating: ‘ . $comment_rating; } } ?>
 Открываем запись с комментарием и видим: Carbon fields Comment Meta  

 Term Meta

Контейнер Term Meta используется для расширения экранов редактирования терминов дополнительными полями. Данные поля хранятся отдельно для каждого термина, используя мета-функциональность термина по умолчанию для WordPress 4.4 и выше. Для версий WordPress до 4.4 данные хранятся в пользовательской таблице ($wpdb->termmeta). Откроем файл theme-option.php и добавим следующие строки:
use Carbon_Fields\Container; use Carbon_Fields\Field; Container::make( ‘term_meta’, __( ‘Category Properties’ ) ) ->where( ‘term_taxonomy’, ‘=’, ‘category’ ) ->add_fields( array( Field::make( ‘text’, ‘crb_title’,__( ‘Title’ ) ), Field::make( ‘color’, ‘crb_title_color’, __( ‘Title Color’ ) ), Field::make( ‘image’, ‘crb_thumb’, __( ‘Thumbnail’ ) ), ) );
Теперь зайдем в админ-панель/ рубрики и откроем любую рубрику. term meta

Доступ к значениям полей

Для доступа к значениям полей необходимо использовать функцию carbon_get_term_meta ($term_id, $name ), где: $term_id – идентификатор термина, в который было введено значение. $ name  – имя поля. Получим картинку и текстовое поле. Выведем их в файле архивов archive.php:
<?php $term_id = get_queried_object_id();// ID таксономии $term_thumbnail_id = carbon_get_term_meta( $term_id, ‘crb_thumb’); // ID изображения $term_thumbnail_url = wp_get_attachment_image_url( $term_thumbnail_id, ‘full’ );?> // ссылка изображение (полный размер) <img width=”300″ src=”<?php echo $term_thumbnail_url; ?>” alt=”” /> <!– вывести каринку на экран –> <p>Editor of this category: <?php echo carbon_get_term_meta( $term_id, ‘crb_title’); ?></p>
Посмотрим на результат. Carbon fields Term Meta Чтобы вывести цвет, например можно задать выбранный цвет заголовку // Получаем значение поля для ввода цвета
<?php  $term_title_color = carbon_get_term_meta( $term_id, ‘crb_title_color’ );?>
<!—в шапке выведем стиль или можно сделать это inline –>
<style> H2{ color: <?php echo $term_title_color; ?>; } </style>
Или
<p style=”color: <?php echo $term_title_color; ?>;”>Editor of this category: <?php echo carbon_get_term_meta( $term_id, ‘crb_title’); ?></p>
Смотрим, что у нас поучилось Carbon fields Term Meta