WordPress的,通常是用tags和labels分别在侧栏显示标签云(cloud tags)和在文章中显示文章标记(Labels).由于分工不同,所以并不需要隐藏两个列表中的个别重复标签,但是如果当其中一个列表中的标签提供不一样的作用,就应该相对于另一个列表中的重复标签独立出来。
要不显示标签云中的部分标签并不是很困难因为 wp_tag_clud() 在codex都给出了相关的参数。例如,不显示ID为3和4的标签:
1 | <?php wp_tag_cloud('smallest=10&largest=18&exclude=3,4'); ?> |
通常来说,在文章中显示标签的功能,默认是没有添加任何参数来隐藏部分标签的:
1 | <?php the_tags('', ', ', ''); ?> |
但是, 我发现更改get_the_tags()可以实现这个功能。首先将以下代码放置在你当前使用主题文件的fuctions.php文件下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /* Excluir tags en Posts */ function pk_the_tags( $before = '', $sep = ', ', $after = '', $exclude = '' ) { $tags = get_the_tags(); if ( empty( $tags ) ) return false; $tag_list = $before; foreach ( $tags as $tag ) { if (!empty($exclude)) $pos = stripos( $exclude, $tag->name); else $pos = false; if ($pos=== false) $tag_links[] = '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a>'; } if (empty($tag_links)) return false; $tag_links = join( $sep, $tag_links ); $tag_links = apply_filters( 'the_tags', $tag_links ); $tag_list .= $tag_links; $tag_list .= $after; echo $tag_list; } |
如上面代码所显示的,每个Label列表的之前和之后都可以使用参数来分隔或隐藏你不想显示的标签。接着,你可以在主题文件的任何一部分调用这个函数,并通过名称来隐藏你不想显示标签。例如,隐藏标签称为“WordPress的”和“Blogger”的:
1 | <?php if (get_the_tags()) pk_the_tags('', ', ', '', 'Wordpress, Blogger'); ?> |
另外我还想说一句,是否需要在tags和labels中隐藏共同的标签,主要取决于是否使用了杂志类型的主题,或与其他功能的标签,但就我本人而言,我还是喜欢手动去除重复的标签。
翻译原文:Cómo excluir etiquetas de la lista de tags en Wordpress(西班牙文)
本文地址:如何从WordPress的标签列表中不显示部分标签
Permalink : 如何从WordPress的标签列表中不显示部分标签
