所以我想我可能在我的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();
最合适的回答,由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();