首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wp查询中的wp查询

wp查询中的wp查询
EN

Stack Overflow用户
提问于 2021-07-06 02:24:21
回答 2查看 42关注 0票数 0

我做了两个wp查询循环,其中一个是在循环内出了问题,我想不出这里是代码,内部wp查询图像cpt与主查询cpt相关。

代码语言:javascript
复制
$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();            
                ?>

问题是主查询固定链接是正确的,但每个循环的内容都是相同的。图像查询工作正常。有人能帮上忙吗?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2021-07-06 04:29:25

在代码的这一部分-

代码语言:javascript
复制
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/

票数 0
EN

Stack Overflow用户

发布于 2021-07-06 11:44:16

嗨,我得到了解决方案,想要主要自定义查询只显示私人帖子。通过过滤pre_get_posts和set方法实现。谢谢大家

代码语言:javascript
复制
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');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68260630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档