我做了两个wp查询循环,其中一个是在循环内出了问题,我想不出这里是代码,内部wp查询图像cpt与主查询cpt相关。
$maincontest = new WP_Query(array(
'posts_per_page' => 3,
'post_type' => 'contest',
'post_status' => 'any'
));
while($maincontest->have_posts()){
$maincontest->the_post(); ?>
<div class = "listloopmain">
<a href="<?php the_permalink(); ?>">
<div class = "listcontestitem">
<div class = "listimage">
<?php
$toplogo = new WP_Query(array(
'posts_per_page' => 1,
'post_type' => 'logo',
'orderby' => 'rand'
));
while($toplogo->have_posts()){
$toplogo->the_post();
$image = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?>
<div class ="listim">
<img src="<?php echo $image ?>"/>
</div>
<?php }
wp_reset_postdata();
?>
</div>
<div class = "title_des">
<div class = "listtitle">
<h4>
<?php the_title(); ?>
</h4>
</div>
<div class = "listdescription">
<?php echo wp_trim_words(get_the_content(), 20); ?>
</div>
</div>
<div class = "listcontestprice">
$ <?php the_field('price'); ?>
</div>
<div class = "listtime">
5 Days
</div>
</div>
</a>
</div>
<?php } ?>
</div>
<div class ="my-pagination">
<?php
echo paginate_links(array(
'prev_text' => __( '<' ),
'next_text' => __( '>' )
));
wp_reset_postdata();
?>问题是主查询固定链接是正确的,但每个循环的内容都是相同的。图像查询工作正常。有人能帮上忙吗?
提前感谢
发布于 2021-07-06 04:29:25
在代码的这一部分-
while($toplogo->have_posts()){
$toplogo->the_post();
$image = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?>
<div class ="listim">
<img src="<?php echo $image ?>"/>
</div>
<?php }
**wp_reset_postdata();**使用$toplogo->reset_postdata();
可以在这里找到的reset_postdata函数的引用- https://developer.wordpress.org/reference/classes/wp_query/reset_postdata/。
此外,这里有一篇很好的文章解释了它是如何使用的- https://neliosoftware.com/blog/the-problems-of-using-nested-loops-in-wordpress/。
发布于 2021-07-06 11:44:16
嗨,我得到了解决方案,想要主要自定义查询只显示私人帖子。通过过滤pre_get_posts和set方法实现。谢谢大家
function contest_adjust_query($query){
if (!is_admin() AND is_post_type_archive('contest') AND $query->is_main_query()) {
$query->set('post_status', 'private');
$query->set('post_status', array('publish', 'private'));
}
}
add_action('pre_get_posts', 'contest_adjust_query');https://stackoverflow.com/questions/68260630
复制相似问题