当前浏览:首页 / WordPress钩子 / the_tags

apply_filters( 'the_tags', string $tag_list, string $before, string $sep, string $after, int $post_id )

过滤给定文章的标签列表

tagmore...

themore...


参数

$tag_list

(string) 标签列表。

$before

(string) 要在标签之前使用的字符串。

$sep

(string) 要在标记之间使用的间隔字符串。

$after

(string) 标签后要使用的字符串。

$post_id

(int) 文章 ID。



源码

查看源码 官方文档


更新日志

版本描述
2.3.0开始引入

使用示例

  • 示例1

    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>
  • 示例2

    替换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>  ';
               	}
            }
    }