2016-03-31 3 views
0

У меня есть два типа сообщений. Мне нужно отображать содержимое каждого из них в одном цикле. На данный момент я могу назвать тип публикации «релизы» для отображения контента, но мне также нужно вызвать тип публикации «художники», чтобы отобразить некоторый контент в том же DIV.Wordpress Advanced Custom Fields отображает два поля из двух разных типов сообщений в одном шаблоне

Следующая строка разбивает страницу на «Catchable fatal error: Объект класса WP_Post не может быть преобразован в строчную ошибку».

<?php the_field('release_artist_name'); ?> 

Как получить поле release_artist_name прекратить ломать сайт? Это поле через объект Post (тип сообщения называется «художники»). Любая помощь оценивается.

<?php 
     $posts = get_posts(array(
     'post_type'  => 'releases' 
    ) 
     )); 

     if($posts): ?> 
    <?php foreach($posts as $post): 
     setup_postdata($post)  
     ?> 
<div> 
    <?php the_title(); ?> // THIS COMES FROM RELEASES POST TYPE 
    <?php the_field('release_artist_name'); ?> // THIS SHOULD COME FROM ARTISTS POST TYPE BUT BREAKS THE PAGE 
</div> 

    <?php endif; ?> 
    <?php endforeach; ?> 
    <?php wp_reset_postdata(); ?> 
    <?php endif; ?> 

Как просили ниже, результаты от print_r ($ сообщений) ...

Array ([0] => WP_Post Object ([ID] => 10661 [post_author] => 1 [post_date] => 2016-03-31 02:37:57 [post_date_gmt] => 2016-03-31 02:37:57 [post_content] => [post_title] => New Gold Mountain [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => closed [post_password] => [post_name] => new-gold-mountain [to_ping] => [pinged] => [post_modified] => 2016-03-31 04:41:04 [post_modified_gmt] => 2016-03-31 04:41:04 [post_content_filtered] => [post_parent] => 0 [guid] => http://127.0.0.1:4001/wordpress/?post_type=releases&p=10661 [menu_order] => 0 [post_type] => releases [post_mime_type] => [comment_count] => 0 [filter] => raw) 
+0

Можете ли вы ответить 'print_r ($ posts)'? и добавить его в свой вопрос? – Milap

+0

Я сделал это, и нет никаких ссылок на «художники» типа сообщения. С чего это происходит? – lowercase

+0

'$ posts = get_posts (array ('post_type' => 'релизы')));' ниже этого кода, добавьте 'print_r ($ posts);' и обновите страницу, посмотрите, что выводит? – Milap

ответ

2

Если у вас есть тип записи для artists и вы используете ACF, в вашем releases пост типа вы должны добавить настраиваемое поле с именем release_artist (например) типа Post Object, где вы свяжете Художника (или Исполнителей) для выпуска. Я рекомендую вам установить это поле для возврата Почтовый индекс вместо Почтовый объект.

Затем в цикле, вы получите художник ID:

$artist_id = get_field('release_artist'); 

Таким образом, вы можете использовать этот идентификатор для запроса любого настраиваемого поля художника:

$artist_name = get_field('artist_name', $artist_id); 

Обратите внимание, что все функции АКФ принимают второй параметр с идентификатором post для запроса других сообщений, когда, например, вы находитесь внутри цикла.

См. get_field Документация. Надеюсь это поможет.

Смежные вопросы