我需要从查询中排除一个类别和几个定制分类法

时间:2014-05-02 作者:Li Chong

我需要从查询中排除一个类别和一些自定义分类法。

这个代码对吗?此查询不排除任何帖子、具有类别的帖子或自定义分类法。我做错了什么?

<?php 
 $args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        \'relation\' => \'OR\',
        array(
            \'taxonomy\' => \'ubicacion\',
            \'field\' => \'slug\',
            \'terms\' => array( \'ruperto-concha\', \'estallido\', \'vineta\', \'vitrina\', \'letrero\', \'plenoempleo\', \'primero\' ),
                    \'operator\' => \'NOT IN\'
        ),
        array(
            \'taxonomy\' => \'category\',
            \'field\' => \'slug\',
            \'terms\' => array( \'las-informasiones\' ),
            \'operator\' => \'NOT IN\'
        )
    )
 );
 $query = new WP_Query( $args );
 ?> 
注意:我需要排除具有该类别或任何自定义分类法的帖子。两种情况中的任何一种。

对不起,英语不好。

使现代化

我打算让这个代码起作用

<?php 
     $args = array(
        \'post_type\' => \'post\',
        \'tax_query\' => array(
                \'taxonomy\' => \'category\',
                \'field\' => \'slug\',
                \'terms\' => array( \'las-informasiones\' ),
                \'operator\' => \'NOT IN\'
              )
     );
     $query = new WP_Query( $args );
     ?> 
即便如此:

<?php 
     $args = array(
        \'post_type\' => \'post\',
        \'tax_query\' => array(
                \'taxonomy\' => \'category__not_in\',
                \'field\' => \'slug\',
                \'terms\' => array( \'las-informasiones\' ),
                )
     );
     $query = new WP_Query( $args );
     ?> 
还有,不要。wp中的wp查询和类别存在一些问题?有人知道吗?

MOAR信息

这是我的海关税代码。我用过自动发电机。

function register_taxonomy_ubicacion() {

    $labels = array( 
        \'name\' => _x( \'Ubicaciones\', \'ubicacion\' ),
        \'singular_name\' => _x( \'Ubicación\', \'ubicacion\' ),
        \'search_items\' => _x( \'Hurgar en ubicaciones\', \'ubicacion\' ),
        \'popular_items\' => _x( \' Ubicaciones más usadas\', \'ubicacion\' ),
        \'all_items\' => _x( \'Todos\', \'ubicacion\' ),
        \'parent_item\' => _x( \'Parent Ubicación\', \'ubicacion\' ),
        \'parent_item_colon\' => _x( \'Parent Ubicación:\', \'ubicacion\' ),
        \'edit_item\' => _x( \'Editar\', \'ubicacion\' ),
        \'update_item\' => _x( \'Actualizar Ubicación\', \'ubicacion\' ),
        \'add_new_item\' => _x( \'Añadir Ubicación\', \'ubicacion\' ),
        \'new_item_name\' => _x( \'Nueva Ubicación\', \'ubicacion\' ),
        \'separate_items_with_commas\' => _x( \'separelas con comas\', \'ubicacion\' ),
        \'add_or_remove_items\' => _x( \'Añadir o remover ubicación\', \'ubicacion\' ),
        \'choose_from_most_used\' => _x( \'Escoger de las más usadas\', \'ubicacion\' ),
        \'menu_name\' => _x( \'Ubicaciones\', \'ubicacion\' ),
    );

    $args = array( 
        \'labels\' => $labels,
        \'public\' => true,
        \'show_in_nav_menus\' => true,
        \'show_ui\' => true,
        \'show_tagcloud\' => false,
        \'show_admin_column\' => true,
        \'hierarchical\' => false,

        \'rewrite\' => true,
        \'query_var\' => true
    );

    register_taxonomy( \'ubicacion\', array(\'post\'), $args );
}

1 个回复
SO网友:Milo

改变\'relation\' => \'OR\'\'relation\' => \'AND\' 将这两项排除适用于所有退回的帖子。这似乎有悖常理,但满足其中一个排除条件的帖子将被包括在内,即使它不满足另一个条件。

EDIT

根据下面注释中链接的代码,这是正在生成的查询:

SELECT SQL_CALC_FOUND_ROWS duk_posts.ID
FROM duk_posts
WHERE 1=1 AND 0 = 1
AND duk_posts.post_type = \'post\'
AND (duk_posts.post_status = \'publish\'
OR duk_posts.post_status = \'private\')
GROUP BY duk_posts.ID
ORDER BY duk_posts.post_date
DESC LIMIT 0, 10
正如您所看到的,这里没有与类别或分类相关的内容WHERE 子句是一个无效的条件,它永远不可能为true。这使我相信您的自定义分类法没有正确注册,因此在运行查询时,它被视为无效的分类法,因此会创建此无效查询。我猜你在错误的钩子上注册了分类法,或者你的名字搞错了。

结束

相关推荐

使用Get_Categories显示类别的图像,或显示任何子帖子中的图像

我正在使用get\\u categories列出父类别的子类别。我想使用get\\u categories输出将图像添加到子类别。我可以从我正在使用get\\u categories的类别的子类别(即父类别的子类别)的任何帖子中获取特色图像。我不想显示任何其他孙儿信息,只想从每组类别的孩子中获得一张特色图片我当前使用的代码是$args = array(\'child_of\' => 1 ); $categories = get_categories($args); forea