通过wp_Query获取其中为POST的税目

时间:2014-06-19 作者:Neovea

我将重写我原来的问题,因为我觉得我无法被理解:我制作了一个模板页面,上面有不同的WP_Query.我有一个分类法(国家)。此模板页与此税务的一个条款匹配。

例如,页面France 与类别税术语匹配

$countries->france
如果管理员愿意,他可以创建一个翻译,该翻译将显示在同一页面模板上。

这些翻译后的帖子将使用相同的cat标签进行分类$countries->france, 但还有另一个(例如):

$language->english
我现在想做的是检查是否有与两者匹配的帖子franceenglish cat术语,如果是,则返回语言术语(english) 或者任何其他的,如果它确实存在的话。

例如,我有以下查询:

// Get the language cat term ID
$parent_id = get_cat_ID( \'languages\' );
// Get the child terms of language
$languages = get_term_children( $parent_id, \'category\' );
// Put them in an array for the query
$langs = array();
foreach ( $languages as $key => $value ) {
    $cat = get_category( $value, ARRAY_A );
    $langs[] = $cat[\'slug\'];
}
// The Query
$langQuery = new WP_Query( array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\'     => \'category\',
            \'category__in\' => array( \'countries\' ),
            \'parent\'       => \'1\',
            \'field\'        => \'slug\',
            \'terms\'        => array( $cat[0] ) // The page\'s slug
        ),
        array(
            \'taxonomy\'     => \'category\',
            \'category__in\' => array( \'languages\' ),
            \'parent\'       => \'1\',
            \'field\'        => \'slug\',
            \'terms\'        => $langs
        )
    )
) );
谢谢你的帮助

1 个回复
SO网友:kaiser

当您在执行SQL查询后立即检查它时

$GLOBALS[\'wp_query\']->last_query
您将看到SQL语句要求AND. 跳入posts_where 或者posts_clauses 过滤器(您需要在其中查找where 键值),并将其更改为OR.

结束

相关推荐

Taxonomy vs Post Status

我正在构建一个web应用程序,因此可扩展性是我开发时的主要关注点之一。在我正在构建的应用程序上,我有一个名为“项目”的帖子类型。项目可以是:我不需要任何类型的UI,只需要能够查询处于一种或多种状态的所有项目。我假设,由于post\\u status位于posts表中,使用此方法执行这些查询比使用分类法更快?所以,我的问题是,如果有100000个项目,查询哪个会更快?发布状态还是分类法?干杯