Я пытаюсь использовать вложенные циклы с плагином постов к постам. Оба цикла работают, но проблема возникает после второго вложенного цикла ($ issue). Я хочу снова получить доступ к циклу публикации $, но данные все еще являются данными выпуска $.
wp_reset_query()
вернется к основному циклу в single.php, который я не хочу.
Я мог бы использовать get_posts()
вместо нового WP_Query, но я хочу иметь возможность использовать get_template_part()
.
Как я могу сбросить мои данные обратно в цикл публикации, чтобы второй «Заголовок публикации» возвращал название публикации, а не проблему?
Вот мой код в single.php:
$publication = new WP_Query( array(
'connected_type' => 'publication_to_post',
'connected_items' => $post->ID,
'fields' => 'ids',
'posts_per_page' => 1,
) );
if ( $publication->have_posts() ) {
while ( $publication->have_posts() ) : $publication->the_post();
echo '<h2>Publication title = '.get_the_title().'</h2>';
$pub_id = get_the_ID();
$issue = new WP_Query( array(
'connected_type' => 'publication_to_issue',
'connected_items' => $pub_id,
'fields' => 'ids',
'posts_per_page' => 1,
) );
if ( $issue->have_posts() ) {
while ( $issue->have_posts() ) : $issue->the_post();
// need to be able to use template parts in here
echo '<h2>Issue title = '.get_the_title().'</h2>';
endwhile;
}
// This currently returns the issue title, not the publication title
echo '<h2>Publication title = '.get_the_title().'</h2>';
endwhile;
}
Прежде всего, я думаю, что это можно использовать
get_posts()
в сочетании сsetup_postdata()
. С их помощью вы можете использовать теги шаблона, как в обычном цикле WordPress.Но вы можете использовать эту функцию и во вложенных циклах:
источник