为什么搜索结果页面上的帖子类型是随机的?

时间:2013-11-05 作者:Gazillion

所以我想我可能在我的Wordpress主题中犯了一些根本错误,因为这个问题似乎每隔一段时间就会出现,我不知道为什么。

所以基本上我创建了搜索。php和我使用relevanssi按相关性对搜索结果进行排序。当我搜索“camera”时echo get_post_type(); 我会得到“评论”,但如果我搜索“测试”并echo get_post_type(); 我收到“文章”。

我尝试在几乎所有地方注入wp\\u reset\\u query(),以尝试查看是否随机更改它,但事实并非如此。我认为WP很困惑,因为我的搜索结果页面并没有真正与任何特定页面链接,所以它没有设置为特定的帖子类型。有没有办法让它成为一页?

非常感谢您的帮助

编辑:

我在下面添加了代码。在var\\u dump中,我只看到了查询内容,但get\\u post\\u type()在每个搜索词上都是不同的。

搜索php:

<?php
get_header();

global $query_string;

$query_args = explode("&", $query_string);
$search_query = array();

foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach

$args = array(
    \'posts_per_page\' => get_option(\'posts_per_page\'),
    \'s\' => $search_query[\'s\']
);

echo get_post_type() .\'<br>\';
var_dump($args);

$search = new WP_Query($args);

if( $search->have_posts() ) {
    while( $search->have_posts() ) {
        $search->the_post();

        include( get_template_directory() . \'/includes/templates/search_result.inc.php\' );      

    }
    wp_reset_query();
}
?>

<a id="ld-more" href="#search">Load more search results</a>
<?php
get_footer();

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您的问题几乎可以肯定是您创建了第二个查询。该查询将与主查询不同步,因此您将得到意外的结果。

从我所看到的情况来看,您并没有真正执行主查询尚未执行的任何操作,因此我认为您真正需要的只是循环本身。

get_header();

if( have_posts() ) {
    while( have_posts() ) {
        the_post();

        include( get_template_directory() . \'/includes/templates/search_result.inc.php\' );      

    }
    wp_reset_query();
}
?>

<a id="ld-more" href="#search">Load more search results</a>
<?php
get_footer();

结束

相关推荐

自定义Post-type未返回正确的Child_Of

Situation我正在使用高级自定义字段插件为自定义帖子类型设置一个复选框。如果选中此框,则此查询应返回该框。到目前为止,查询工作正常。The issue我希望它显示的页面都是一个页面的子页面。这个查询返回带有复选框的所有页面,而不是只返回带有复选框的当前页面的子页面。My code页面顶部<?php $tid = get_the_ID(); ?> 沿着页面进一步<?php $i == 0; global $post; $myposts =