wordpress从get_the_tag_list中排除标记

时间:2016-01-15 16:46:50

标签: php wordpress

虽然我使用自定义模板标记输出单个帖子标记:

<?php
echo get_the_tag_list('<p class="text-muted"><i class="fa fa-tags"></i> ',', ','</p>');
?>

如何从标签列表中排除已定义的标签名称?

1 个答案:

答案 0 :(得分:1)

没有过滤器可以删除get_the_tag_list中的字词,但在内部它会调用get_the_terms,因此您可以在那里添加过滤器。

考虑这个例子: -

add_filter('get_the_terms', 'exclude_terms');
echo get_the_tag_list('<p class="text-muted"><i class="fa fa-tags">',', ','</i></p>');
remove_filter('get_the_terms', 'exclude_terms');

get_the_terms上添加过滤器,并在回显列表后将其删除。因为它可能会多次在页面上调用。

在回调函数中,通过ID或slugs删除术语

function exclude_terms($terms) {
    $exclude_terms = array(9,11); //put term ids here to remove!
    if (!empty($terms) && is_array($terms)) {
        foreach ($terms as $key => $term) {
            if (in_array($term->term_id, $exclude_terms)) {
                unset($terms[$key]);
            }
        }
    }

    return $terms;
}