wordpress - 从自定义主题中的帖子列表中排除类别,看起来不像是codex

时间:2013-01-07 00:06:03

标签: wordpress tags custom-taxonomy

我希望有人可以提供帮助。我不是一个php编码器,但无论如何我一直在为wordpress定制一个高级主题,而且我被卡住了。

我正在尝试从默认列出所有类别的页面中排除特定类别。好的,没问题。它应该是:

<?php query_posts($query_string . '&cat=-134'); ?>

正确?

我很确定类别编号是134,但我可能错了。我正在使用的高级主题称为Risen,并且有很多不同类型的帖子 - 所以我认为类别可能是自定义分类中的标签 - 在这种情况下???

当我将鼠标悬停在类别列表中时,我得到了这个:

example.com/wp-admin/edit-tags.php?action=edit&taxonomy=risen_multimedia_category&tag_ID=134&post_type=risen_multimedia

我很确定我已经找到了我需要包含我的论点的地方,这就在模板中:

// Get posts
$multimedia_query = new WP_Query( array(
    'post_type'         => 'risen_multimedia',
    'posts_per_page'    => risen_option( 'multimedia_per_page' ) ? risen_option(  'multimedia_per_page' ) : risen_option_default( 'multimedia_per_page' ),
    'paged'             => risen_page_num() // returns/corrects $paged so pagination works on static front page
) );

我尝试过添加

'tag'   => -134

到这个阵列无济于事。

1 个答案:

答案 0 :(得分:0)

作为一个优质的,并且经过调整的主题,这里有很多猜测,但我认为你已经谈到了自己的解决方案,除了一个细节。使用tag__not_in而不是tag=-134

// Get posts
$multimedia_query = new WP_Query( array(
    'post_type'         => 'risen_multimedia',
    'posts_per_page'    => risen_option( 'multimedia_per_page' ) ? risen_option(  'multimedia_per_page' ) : risen_option_default( 'multimedia_per_page' ),
    'paged'             => risen_page_num() // returns/corrects $paged so pagination works on static front page
    'tag__not_in'       => array(134)
) );

tag_id=-134可能有用(我必须对其进行测试),但tag期望标签slug不是ID。

  

tag(string) - 使用标签slug
  http://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters