虽然我使用自定义模板标记输出单个帖子标记:
<?php
echo get_the_tag_list('<p class="text-muted"><i class="fa fa-tags"></i> ',', ','</p>');
?>
如何从标签列表中排除已定义的标签名称?
答案 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;
}