很多技能我们都是因为需要才去学习,喵叔也是如此。当需要一个功能的时候我就去百度找,我相信我前面已经有很多先驱把这个问题解决了,事情往往便是如此,所以百度/谷歌能解决我们大部分问题。
回归正文,wordpress怎么给标签添加内链?
只需要一段代码即可搞定,复制下面的代码放置于主题文件 functions.php 的结束标签前即可。
$match_num_from = 1; // 一个标签在文章中出现少于多少次不添加链接 $match_num_to = 1; // 一篇文章中同一个标签添加几次链接 add_filter(’the_content’,’tag_link’,1); //按长度排序 function tag_sort($a, $b){ if ( $a->name == $b->name ) return 0; return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1; } //为符合条件的标签添加链接 function tag_link($content){ global $match_num_from,$match_num_to; $posttags = get_the_tags(); if ($posttags) { usort($posttags, "tag_sort"); foreach($posttags as $tag) { $link = get_tag_link($tag->term_id); $keyword = $tag->name; //链接的代码 $cleankeyword = stripslashes($keyword); $url = "<a href="$link" title="".str_replace(’%s’,addcslashes($cleankeyword, ’$’),__(’View all posts in %s’))."""; $url .= ’ target="_blank"’; $url .= ">".addcslashes($cleankeyword, ’$’)."</a>"; $limit = rand($match_num_from,$match_num_to); //不链接的代码 $content = preg_replace( ’|(<a[^>]+>)(.*)(’.$ex_word.’)(.*)(</a[^>]*>)|U’.$case, ’$1$2%&&&&&%$4$5’, $content); $content = preg_replace( ’|(<img)(.*?)(’.$ex_word.’)(.*?)(>)|U’.$case, ’$1$2%&&&&&%$4$5’, $content); $cleankeyword = preg_quote($cleankeyword,’’’); $regEx = ’’(?!((<.*?)|(<a.*?)))(’. $cleankeyword . ’)(?!(([^<>]*?)>)|([^>]*?</a>))’s’ . $case; $content = preg_replace($regEx,$url,$content,$limit); $content = str_replace( ’%&&&&&%’, stripslashes($ex_word), $content); } } return $content; }