Примеры кода

Ниже представлены примеры реализации кода с использованием плагине 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>';
}

?>