自定义帖子查询会破坏Wordpress循环中的原始搜索字词

时间:2016-11-04 15:34:46

标签: wordpress loops

我想创建一个循环并按作者角色查询帖子,并根据作者角色显示搜索字词的结果。

当我应用我的查询时,返回的帖子是针对用户角色的,而不是原始搜索词。

这是我的查询和循环;

    $ids = get_users(
        array(
            'role'   => 'administrator' ,
            'fields' => 'ID'
            )
    );


    $query = new WP_Query( 
        array( 
            'author__in' => $ids,
        )
    );


        // If the query has data
        if($query->have_posts() ) :

                // Post loop
                while ($query->have_posts() ) : 

                    // Setup post data
                    $query->the_post();
                    ?>

                    <!-- Do HTML markup and template tags here, eg. the_content(), the_title() etc.. -->
                    <h1>You're a post from administrator - <?php the_title(); ?></h1>


                    <?php get_template_part( 'template-parts/content', 'search' ); ?>

                    <?php
                endwhile;

        // End "If the query has data"
        endif;

这是在我的search.php页面上...

例如,如果我有两个帖子来自用户类型&#39;管理员&#39;其中一个帖子标有&#39;英格兰&#39;而另一个则不是 - 所以当我去搜索表格并进入英格兰&#39;我希望这段代码可以显示这两个中的一个帖子但是它不会显示两个帖子。

所以它似乎只是显示来自用户类型&#39;管理员&#39;的所有帖子。并忽略搜索词。

我不知道为什么会这样,在我看来这个代码应该正常工作,如果有人有任何建议或者能指出我正确的方向那将是伟大的!

1 个答案:

答案 0 :(得分:1)

您正在创建自定义循环,因此您需要将搜索词添加回查询参数。

 $query = new WP_Query( 
        array( 
            'author__in' => $ids,
            's' => $_GET['s']
        )
    );