Плагин Carbon fields. Часть 3.1 – Типы Контейнеров. Post Meta

Автор: | 30.06.2019

Контейнеры в Custom 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_get_post_meta ($id, $name), где:
$id – ID поста, где было введено значение.
$name — имя поля, которое должно быть получено.
Эту конструкцию вставляем в то место шаблона, где должны появиться данные значения. В примере выше мы создали 2 поля – текст и картинку. Откроем любую страницу и заполним их

carbon fields

Откроем файл page.php и пропишем следующий текст

 

<!-- Simple field -->

<p>Article was published in: <?php echo carbon_get_post_meta( get_the_ID(), 'crb_custom_text' ); ?></p>

 

Вывести картинку немного сложнее:

Сначала получим ID изображения.

 

$thumbnail_id = carbon_get_post_meta( get_the_ID(), 'crb_photo'); // получим ID картинки

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

 

$thumbnail_url = wp_get_attachment_image_url( $thumbnail_id, 'full' ); // ссылка на полный размер картинки по ID вложения
?>

 

Осталось вывести само изображение

 

<img src="<?php echo $thumbnail_url; ?>" alt="" />

Вывод комплексных полей

Позже я подробно расскажу о более сложных, комплексных полях, которые можно создать. Например, добавим комплексное поле для страниц

 

Field::make( 'complex', 'crb_slider', __( 'Slider' ) )
->add_fields( array(
Field::make( 'text', 'title', __( 'Slide Title' ) ),
Field::make( 'image', 'photo', __( 'Slide Photo' ) ),
) )

 

carbon fields

 

Их вызывают немного по-другому. В том месте шаблона, где хотим вызвать поля нужно прописать:

 

$slides = carbon_get_post_meta( get_the_ID(), 'crb_slider' );

if ( $slides ) {
foreach ($slides as $slide) {
echo '<p>' . $slide['title'] . '</p>';
$thumbnail_id = $slide['photo']; // получим ID картинки из опции темы
$thumbnail_url = wp_get_attachment_image_url( $thumbnail_id, 'full' ); // ссылка на полный размер картинки по ID вложения
echo '<img src=" '. $thumbnail_url . '">';
}
}
?>

 

Открываем страницу и видим:
carbon fields
Вы также можете использовать carbon_get_the_post_meta( $name )  для доступа к значениям текущей записи в цикле.

 

<p>Article was published in: <?php echo carbon_get_the_post_meta( 'crb_location' ); ?></p>

<?php $slides = carbon_get_the_post_meta( 'crb_slides' ); ?>

 

Плагин Carbon fields. Часть 3.1 – Типы Контейнеров. Post Meta: 2 комментария

  1. Я

    Ужасно тупо не писать версию плагина, при таких больших отличиях версий….

    1. wpmaster Автор записи

      Спасибо за важное замечание, хоть и выражено оно не в очень корректной форме…Версия плагина 3,0! Актуальная информация об изменениях в новых версиях на оф. сайте https://carbonfields.net

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

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

три × 4 =