十月 8, 2009 | In: Tutorials, Wordpress, 分享

如何从WordPress的标签列表中不显示部分标签

WordPress的,通常是用tags和labels分别在侧栏显示标签云(cloud tags)和在文章中显示文章标记(Labels).由于分工不同,所以并不需要隐藏两个列表中的个别重复标签,但是如果当其中一个列表中的标签提供不一样的作用,就应该相对于另一个列表中的重复标签独立出来。

要不显示标签云中的部分标签并不是很困难因为 wp_tag_clud() 在codex都给出了相关的参数。例如,不显示ID为3和4的标签:

1
<?php wp_tag_cloud('smallest=10&amp;largest=18&amp;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的标签列表中不显示部分标签

Comment Form