我正在制作wordpress主题,需要选择多个类别的帖子来构建菜单。我可以设置它来处理标签,或标签和类别的组合,但最后我需要能够通过多个cat / tag进行搜索。我能找到的唯一内置wordpress函数允许对cat / tag进行多个AND搜索,这样就是query_posts函数:
query_posts(array('category__and' => array(list_of_cats)))
这有两个问题。首先是wp文档说不使用它。第二个是一个真正的问题,我需要知道在运行循环之前查询了多少帖子,因为我不想构建空的子菜单或者只有一个或两个项目。
另一种方法是运行我自己的查询,但我无法找到正确的语句来运行以查找所选类别中的帖子。我可以想象搜索两个类别需要发生什么,但它在3+时变得模糊。
我可以执行多个独立查询,然后使用array_intersect查找匹配所有查询的查询,但我想在这里扩展我的mysql和/或wp知识。
总之,我希望能够回答以下任何一个问题:
1 - query_posts()的替代方法,允许多个AND匹配 2 - 一种查找使用query_posts()时将循环的帖子数量的方法 3 - 一些mysql魔法,在同一个表的多个查询上运行一个大联盟
提前致谢
答案 0 :(得分:0)
“如果您想在主要循环之外创建单独的循环,则应使用get_posts()代替。
注意:从版本3.0开始,页面ID数组也可用于包含和排除参数。“
很确定你可以这样做:
$wp_query->post_count
获取查询帖子的总数。
是的,根据WPQuery:
get_posts() 获取并返回请求的帖子 来自数据库。也填充 $ posts和$ post_count。
:)