显示搜索结果计数


13

到目前为止,我一直使用下面的代码来获取某人搜索时的结果数量并显示该计数。

<?php /* Search Count */ $allsearch =& new WP_Query("s=$s&showposts=-1"); $count = $allsearch->post_count; echo $count . ' '; wp_reset_query(); ?>

但这似乎不是有效的代码。它显示以下错误:

不推荐使用:不推荐通过引用分配new的返回值

任何人都可以建议我获取搜索次数的正确方法。上面的代码放在条件语句中主题的index.php文件的标题中,以根据用户所在的页面类型显示不同的标题。


allsearch = new WP_Query请勿使用'&'来避免过时的通知。
gmazzap

Answers:


32

如果您在搜索模板中,即搜索查询是您的主要查询。然后,您应该能够从全局获取搜索结果,$wp_query而无需运行其他查询。

global $wp_query;
echo $wp_query->found_posts.' results found.';

编辑1

如果您必须从搜索上下文中计算出来。您可以将两种技术结合使用以获得有效的结果。它不会获取所有帖子,但是您可以获取搜索数量。

$allsearch = new WP_Query("s=$s&showposts=0"); 
echo $allsearch ->found_posts.' results found.';

您的错误

关于您遇到的错误,它就在这里

$allsearch =& new WP_Query("s=$s&showposts=-1");

删除等号旁边的“&”以消除错误。所以看起来像这样

$allsearch = new WP_Query("s=$s&showposts=-1");

1
哇谢谢。我也试过了,它的效果是'<?php / * Search Count * / $ count = $ wp_query-> post_count; 回声$ count。''; wp_reset_query(); ?>'
Harish Chouhan

增加您的$ allsearch = new WP_Query(“ s = $ s&showposts = 0”); echo $ allsearch-> found_posts。” 找到结果。将仅显示当前页数而不是总数。例如,如果也有20个帖子,则应该只有10个。
Suyash Jain
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.