从get_the_category_list中排除Wordpress类别

时间:2014-02-17 20:56:47

标签: php wordpress

我有一些代码列出了您当前所在职位的类别......

<?php $categories_list = get_the_category_list( __( ', ', 'sitename' ) );
if ( $categories_list && sitename_categorized_blog() ) :?>
<span class="cat-links">
<?php printf( __( 'ALL NEWS FOR %1$s', 'sitename' ), $categories_list ); ?>
</span>
<?php endif; // End if categories ?>

这很有效,但我刚刚添加了一个名为“feature-posts&#39;”的新文章。如何从上面的代码生成的菜单中显示这个精选帖子类别(通过名称或ID)?

所以不是结果......

所有新闻:类别名称,特色帖子

我得到......

所有新闻:类别名称

3 个答案:

答案 0 :(得分:2)

说明

嗨,请改用wp_list_categories函数并使用'exclude'参数。 有关详细说明,请参阅this codex page

实施例

您可以将此代码放在主题的functions.php文件中。下面是一个例子:

function list_categories_without_this_cat() {
  $categories_stripped_of_one = wp_list_categories( array(
    'exclude' => array( 8 )
  ) );
  return $categories_stripped_of_one;
}

答案 1 :(得分:0)

使用list_categories的问题在于它将它们列在列表中,而不是像使用逗号分隔的get_the_category_list那样。

答案 2 :(得分:0)

我在这里找到了一个很好的答案:

https://stackoverflow.com/a/34817401/5614002

只需调用get_the_category_list而不是get_the_tags_list。

我重新命名了回调函数exclude_cats(而不是exclude_terms),添加了一个我想跳过的类别数组,这是一件轻而易举的事!