在Pre_Get_Posts中包括来自要素类别的帖子

时间:2015-05-25 作者:abhishekfdd

我有两个自定义分类法“cities taxonomy”和“userfeed taxonomy”,我排除了所有在我的博客页面中使用pre\\u get\\u post()分配这些分类法的帖子;

这是我的问题

add_action( \'pre_get_posts\', \'my_filter_main_query\' );

function my_filter_main_query( $query ) {

if ( $query->is_home() && $query->is_main_query() ) {

    $terms1 = get_terms( array( \'userfeed-taxonomy\' ), array( \'fields\' => \'ids\' ) );
    $terms2 = get_terms( array( \'cities-taxonomy\' ), array( \'fields\' => \'ids\' ) );


    $query->set( \'tax_query\', array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'userfeed-taxonomy\',
            \'field\' => \'id\',
            \'terms\' => $terms1,
            \'operator\' => \'NOT IN\'
        ),
        array(
            \'taxonomy\' => \'cities-taxonomy\',
            \'field\' => \'id\',
            \'terms\' => $terms2,
            \'operator\' => \'NOT IN\'
        ),
    ));
}}
现在我想要的是如果

作为特色的

除了上述分类法之外,还分配了类别,不能将post从查询中排除。

感谢您的帮助,我是否可以通过其他方法更改博客页面查询来实现这一点?

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

我没有运行这段代码,因此可能会出现语法错误,但要点是返回具有指定特征类别的术语的userfeed分类法,或返回具有指定和特征类别的术语的cities分类法或任何其他非这些分类法。有点笨重,也许有更好的方法:

    $query->set( \'tax_query\', array(
        \'relation\' => \'OR\',
        array(
            array(
                \'relation\' => \'AND\',
                array(
                    \'taxonomy\' => \'userfeed-taxonomy\',
                    \'field\' => \'id\',
                    \'terms\' => $terms1
                ),
                array(
                    \'taxonomy\' => \'category\',
                    \'field\' => \'slug\',
                    \'terms\' => array( \'featured\' )
                ),
            ),
        ),
        array(
            array(
                \'relation\' => \'AND\',
                array(
                    \'taxonomy\' => \'cities-taxonomy\',
                    \'field\' => \'id\',
                    \'terms\' => $terms2
                ),
                array(
                    \'taxonomy\' => \'category\',
                    \'field\' => \'slug\',
                    \'terms\' => array( \'featured\' )
                ),
            ),
        ),
        array(
            \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'userfeed-taxonomy\',
                \'field\' => \'id\',
                \'terms\' => $terms1,
                \'operator\' => \'NOT IN\'
            ),
            array(
                \'taxonomy\' => \'cities-taxonomy\',
                \'field\' => \'id\',
                \'terms\' => $terms2,
                \'operator\' => \'NOT IN\'
            )
        )
    ) );

结束

相关推荐

QUERY_var在REGISTER_TASTIONY中有什么作用

如果在register_taxonomy( $taxonomy, $object_type, $args ) 我设置query_var 争论是否属实?我读过here 这query_var (布尔值或字符串)(可选)False要禁用query\\u var,请设置为string以使用自定义query\\u var,而不是默认值$taxonomy,即分类法的“名称”。默认值:$分类法Note: 这个query_var 用于通过直接查询WP_Query 喜欢new WP_Query(array(

在Pre_Get_Posts中包括来自要素类别的帖子 - 小码农CODE - 行之有效找到问题解决它

在Pre_Get_Posts中包括来自要素类别的帖子

时间:2015-05-25 作者:abhishekfdd

我有两个自定义分类法“cities taxonomy”和“userfeed taxonomy”,我排除了所有在我的博客页面中使用pre\\u get\\u post()分配这些分类法的帖子;

这是我的问题

add_action( \'pre_get_posts\', \'my_filter_main_query\' );

function my_filter_main_query( $query ) {

if ( $query->is_home() && $query->is_main_query() ) {

    $terms1 = get_terms( array( \'userfeed-taxonomy\' ), array( \'fields\' => \'ids\' ) );
    $terms2 = get_terms( array( \'cities-taxonomy\' ), array( \'fields\' => \'ids\' ) );


    $query->set( \'tax_query\', array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'userfeed-taxonomy\',
            \'field\' => \'id\',
            \'terms\' => $terms1,
            \'operator\' => \'NOT IN\'
        ),
        array(
            \'taxonomy\' => \'cities-taxonomy\',
            \'field\' => \'id\',
            \'terms\' => $terms2,
            \'operator\' => \'NOT IN\'
        ),
    ));
}}
现在我想要的是如果

作为特色的

除了上述分类法之外,还分配了类别,不能将post从查询中排除。

感谢您的帮助,我是否可以通过其他方法更改博客页面查询来实现这一点?

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

我没有运行这段代码,因此可能会出现语法错误,但要点是返回具有指定特征类别的术语的userfeed分类法,或返回具有指定和特征类别的术语的cities分类法或任何其他非这些分类法。有点笨重,也许有更好的方法:

    $query->set( \'tax_query\', array(
        \'relation\' => \'OR\',
        array(
            array(
                \'relation\' => \'AND\',
                array(
                    \'taxonomy\' => \'userfeed-taxonomy\',
                    \'field\' => \'id\',
                    \'terms\' => $terms1
                ),
                array(
                    \'taxonomy\' => \'category\',
                    \'field\' => \'slug\',
                    \'terms\' => array( \'featured\' )
                ),
            ),
        ),
        array(
            array(
                \'relation\' => \'AND\',
                array(
                    \'taxonomy\' => \'cities-taxonomy\',
                    \'field\' => \'id\',
                    \'terms\' => $terms2
                ),
                array(
                    \'taxonomy\' => \'category\',
                    \'field\' => \'slug\',
                    \'terms\' => array( \'featured\' )
                ),
            ),
        ),
        array(
            \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'userfeed-taxonomy\',
                \'field\' => \'id\',
                \'terms\' => $terms1,
                \'operator\' => \'NOT IN\'
            ),
            array(
                \'taxonomy\' => \'cities-taxonomy\',
                \'field\' => \'id\',
                \'terms\' => $terms2,
                \'operator\' => \'NOT IN\'
            )
        )
    ) );

相关推荐

如何读取WordPress$Query关联数组(散列)键的值

WordPress编程新手(来自更为传统的环境),并试图了解其一些“独特”特性。我们的网站上有一个目录页,此代码驻留在functions.php, 如果条件为true,则调整结果。if( $query->is_post_type_archive( \'directory\' ) ){ ...//do stuff } 我想知道如何获取is_post_type_archive 这就是“目录”当我对值使用测试时。。。var_dumb($query->is_post