参数
- $tag_list
-
(string) 标签列表。
- $before
-
(string) 要在标签之前使用的字符串。
- $sep
-
(string) 要在标记之间使用的间隔字符串。
- $after
-
(string) 标签后要使用的字符串。
- $post_id
-
(int) 文章 ID。
源码
更新日志
版本 | 描述 |
---|---|
2.3.0 | 开始引入 |
使用示例
the_tags接收以下方式形成的html字符串:
$html = "<a href="http://my_website.local/tag/tag_one/" rel="tag">tag_one</a>, <a href="http://my_website.local/tag/tag_two/" rel="tag">tag_two</a>";
为了替换标签,可以使用DOMDocument类。例如,可以使用替换词替换所有标签。但不要更改标签的链接。一个更有用的示例可以用别名或翻译替换一些标签。
add_filter( 'the_tags', 'my_filter_the_tags'); function my_filter_the_tags( $html) { $dom = new DOMDocument(); $dom->loadHtml($html); $anchors = $dom->getElementsByTagName('a'); $nb = $anchors->length; for($pos=0; $pos<$nb; $pos++) { $anchors->item($pos)->nodeValue = 'any_replacement'; // check error_log( $anchors->item($pos)->nodeValue); } $html = $dom->saveHTML(); return $html; }
输出如下:
<a href="http://my_website.local/tag/tag_one/" rel="tag">any_replacement</a>, <a href="http://my_website.local/tag/tag_two/" rel="tag">any_replacement</a>
替换the_tags的最简单方法
add_filter( 'the_tags', 'my_filter_the_tags'); function my_filter_the_tags( $html) { $tags = get_tags(); $out = ''; foreach ( $tags as $key=>$tag) { $pos = strpos( $html , $tag->name ); if ( $pos > 0 ) { $replace = my_tag_translation($tag->name); $out .= '<a href = "'.site_url() .'/tag/' . $tag->slug . ' " rel="tag" title="" >' . $replace . ' ,</a> '; } } }