Ниже представлены примеры реализации кода с использованием плагине Advanced Custom Fields: Вывести поле, Вернуть поле в переменную, Использование условных выражений, Работа с Массивами, Работа с Изображениями, Работа с Повторителем и т.д.
Вывести поле
<p><?php the_field('field_name'); ?></p>
Вернуть поле в переменную
<?php
$variable = get_field('field_name');
// сделать что-то с переменной $variable
?>
Использование условных выражений
get_field вернет false, если (value == “” || value == null || value == false)
<?php
if(get_field('field_name'))
{
echo '<p>' . get_field('field_name') . '</p>';
}
?>
Работа с Массивами
для типов полей: чекбокс, выбор, взаимоотношение, повторитель
<?php
$values = get_field('field_name');
if($values)
{
echo '<ul>';
foreach($values as $value)
{
echo '<li>' . $value . '</li>';
}
echo '</ul>';
}
// смотрим, что внутри массива
var_dump($values);
?>
Работа с Изображениями – Ссылка
<img src="<?php the_field('image_test'); ?>" alt="" />
Работа с Изображениями – ID
При помощи ID вы можете получить нужный размер изображения и даже имя файла!
<?php $image = wp_get_attachment_image_src(get_field('image_test'), 'full'); ?>
<img src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_field('image_test')) ?>" />
Работа с Повторителем
Повторитель может получить get_field или the_repeater_field / the_sub_field
<?php if( have_rows('repeater_field_name') ): ?>
<ul>
<?php while( have_rows('repeater_field_name') ): the_row(); ?>
<li>sub_field_1 = <?php the_sub_field('sub_field_1'); ?>, sub_field_2 = <?php the_sub_field('sub_field_2'); ?>, etc</li>
<?php
$sub_field_3 = get_sub_field('sub_field_3');
// сделать что-то с переменной $sub_field_3
?>
<?php endwhile; ?>
</ul>
<?php endif; ?>
Выбор случайных значений из Повторителя
<?php
$rows = get_field('repeater_field_name');
$row_count = count($rows);
$i = rand(0, $row_count - 1);
echo $rows[ $i ]['sub_field_name'];
?>
Получение значения с другой страницы
<?php
$other_page = 12;
?>
<p><?php the_field('field_name', $other_page); ?></p>
<?php
// вернуть в переменную
$variable = get_field('field_name', $other_page);
// повторитель: обратите внимение, что для the_sub_field и get_sub_field не нужен параметр post_id
if( have_rows('repeater_field_name', $other_page) ): ?>
<ul>
<?php while( have_rows('repeater_field_name', $other_page) ): the_row(); ?>
<li>sub_field_1 = <?php the_sub_field('sub_field_1'); ?>, sub_field_2 = <?php the_sub_field('sub_field_2'); ?>, etc</li>
<?php
$sub_field_3 = get_sub_field('sub_field_3');
// сделать что-то с переменной $sub_field_3
?>
<?php endwhile; ?>
</ul>
<?php endif; ?>
Query posts со значениями ACF
Для примера, найдем Events (тип записи) в котором находиться location (произвольное поле — выбор) равное Melbourne (значение поля).
Больше информации тут (англ.): codex.wordpress.org/Template_Tags/get_posts.
<?php
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'event',
'meta_key' => 'location',
'meta_value' => 'melbourne'
));
if($posts)
{
echo '<ul>';
foreach($posts as $post)
{
echo '<li><a href="' . get_permalink($post->ID) . '">' . get_the_title($post->ID) . '</a></li>';
}
echo '</ul>';
}
?>