为什么我不能从get_terms或WP_Term_query中排除术语ID?

时间:2017-04-17 16:22:27

标签: wordpress

我有自定义帖子(" artigo"),此CPT有一个注册分类(" artigo_eixo"),其中有3个注册条款。

我想在该页面中显示一个侧边栏,列出所有条款 ,但当前条款除外, 在列出所有条款的页面中具有该术语(http://localhost/mytaxonomy/current_term/

的帖子

但是,我无法从查询中排除当前字词。

我试图获取分类术语列表,但从此列表中排除某个术语。我试图遵循代码示例,但我没有成功,使用get_terms()WP_Term_query()

有3个术语,ID为13,14,15。没有包含这些ID的帖子或CPT项目。

我刚刚测试了get_queried_object_id(),它似乎正在返回所显示术语的正确术语ID - 也就是说,如果我正在查看ID为13的术语的URL,则该函数返回13,并且等等。

它也不能使用硬编码值,无论是字符串,整数还是任何这些类型的数组。都没有赢得工作:

'exclude' => 14
'exclude' => '14'
'exclude' => array(14)
'exclude' => array('14')

PHP或WP调试日志没有显示错误。

get_terms

if (is_tax( 'artigo_eixo' )) {

    $current_eixo = get_queried_object_id();

    $args = array(
        'taxonomy' => 'artigo_eixo',
        'exclude' => $current_eixo
    );

    $eixos = get_terms( $args );

WP_Term_query

if (is_tax( 'artigo_eixo' )) {

    $current_eixo = get_queried_object_id();

    $args = array(
        'taxonomy' => array('artigo_eixo'),
        'exclude' => $current_eixo
    );

    $eixos = new WP_Term_Query( $args );
    $eixos = $eixos->terms;

1 个答案:

答案 0 :(得分:0)

原来有一个函数钩住了过滤器list_terms_exclusions,并且返回是一个逻辑错误的条件。我修复了它,现在查询排除这个术语按预期工作。