Получить данные поля ACF в цикле foreach - WordPress - PullRequest
0 голосов
/ 09 января 2019

У меня есть настраиваемое поле изображения для всех страниц с определенным шаблоном страницы (с помощью плагина ACF).

Я запрашиваю эти страницы примерно так:

    $posts = get_posts(array(
    'posts_per_page'    => -1,
    'post_type'         => 'page',
    'meta_key'      => '_wp_page_template',
    'meta_value'    => 'services-page.php'
));

Затем я отображаю страницы с циклом foreach:

if( $posts ): ?>
<?php foreach( $posts as $post ): setup_postdata( $post );?>
//content goes here
<?php endforeach; ?> 
<?php wp_reset_postdata(); ?>
<?php endif; ?>

Теперь я хочу получить доступ к настраиваемому полю для отображения внутри цикла. Но ниже не работает. Я предполагаю, потому что поля ACF не добавляются к объекту post.

//Does not work    
$image = $post -> services_block_image

ACF имеет функцию get_field(), но что я могу сделать, чтобы получить поле для каждой записи из моего исходного запроса? Обнаружил, что документы ACF довольно запутаны (само собой разумеется, я немного новичок в PHP).

1 Ответ

0 голосов
/ 09 января 2019

Внутри цикла используйте функцию get_field для получения изображения.

проверьте код ниже для вашей справки.

 $image = get_field('services_block_image'); // get the image
 if( !empty($image) ): ?>

    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />

<?php endif; ?>
...