自定义查询-未显示子类别

时间:2012-02-01 作者:Howdy_McGee

What I\'m Doing

我有城市类别和普通类别。现在我让他们按类别过滤,然后当用户单击一个城市时,它将按类别和城市过滤

query_posts(array( \'category__and\' => array($city, $category))

The Problem

这很有效-没问题。当我将子类别添加到主类别时,问题就出现了$categories 管理员不会检查父级。

Example

我有一个主要类别:Food 和2个子类别Fries &;Burgers. 我还有一个城市类别叫做New York. 管理员添加帖子并检查FriesNew York 因此,默认情况下,wordpress将调出此帖子。当用户尝试按城市筛选时(New York) 它说没有帖子,因为家长从未被检查过。

当用户按城市筛选父类别时,如何将该子类别帖子置于首位?

如果让人困惑,我很抱歉,如果需要,请提问。提前感谢!

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

category__and 是独占的,因此如果您使用tax_query 并按如下方式设置查询,它应该可以工作:

$args = array(
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'category\',
            \'field\'    => \'id\',
            \'terms\'    => $city,
            //\'include_children\' is true by default
        ),
        array(
            \'taxonomy\' => \'category\', //may need to be categories, I don\'t recall, tweak it till it works.
            \'field\'    => \'id\',
            \'terms\'    => $category,
            //\'include_children\', again, is true by default
        )
    )
);
$posts = query_posts( $args );
如果这不符合query_posts() (我看不出有任何理由不这样做),WP_Query 不会抱怨的,所以就用这个吧。还有,链接到WP_Query 包含了修改该查询所需的所有文档,所以浏览一下,您可能至少需要\'post_status\' => \'publish\'...也许更多。

结束

相关推荐

Apply_Filters函数及其变量的说明

我正在学习如何使用PHP构建html表单,方法是以“simplr表单注册”插件为例。我正在查看以下代码:$form .= apply_filters(\'simplr-reg-instructions\', __(\'Please fill out this form to sign up for this site\', \'simplr-reg\')); 您能解释一下这里发生了什么吗?函数的作用是什么,为什么需要“simpr reg指令”和“simpr reg”?为什么这句话不能简单地说:$