Tôi đang cố gắng sử dụng các vòng lặp lồng nhau với các bài đăng để đăng bài. Các vòng lặp đều hoạt động, nhưng vấn đề phát sinh sau vòng lặp lồng thứ hai (vấn đề $). Tôi muốn truy cập lại vòng lặp xuất bản $, nhưng dữ liệu vẫn là dữ liệu vấn đề $.
wp_reset_query()
sẽ đặt lại ngay vào vòng lặp chính trong single.php mà tôi không muốn.
Tôi có thể sử dụng get_posts()
thay vì WP_Query mới, nhưng tôi muốn có thể sử dụng get_template_part()
.
Làm cách nào tôi có thể đặt lại dữ liệu của mình trở lại vòng lặp xuất bản để 'Tiêu đề xuất bản' thứ hai trả về ấn phẩm, không phải vấn đề, tiêu đề?
Đây là mã của tôi trong 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;
}