首页 > 解决方案 > wp查询中的wp查询

问题描述

我做了两个 wp 查询循环一个是在循环内出了点问题我无法弄清楚这里是与主查询 cpt 相关的图像 cpt 的内部 wp 查询的代码。

$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();            
                ?>

问题是主查询永久链接是正确的,但每个循环的内容是相同的。图像查询工作正常。有人可以帮忙吗?

提前致谢

标签: phpwordpress

解决方案


嗨,我得到了解决方案,只需要主要的自定义查询来显示私人帖子。通过过滤 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');

推荐阅读