我们在用wordpress写文章的时候,有可能会有一些之前写过的tag,这个时候我们就可以给tag加上链接,这样既可以优化我们的内链,又可以让用户点击tag找到想要获取的内容,一举两得,但是我们手动加链接的话,那样会严重影响我们写文章的速度,而且有些tag我们也不知道到底写过没,比较麻烦,所以今天给大家介绍一下怎么在我们写wordpress文章的时候自动给tag加上超链接吧。
打开你主题的functions.php文件(有的主题可能会不同,functions-option.php这样的也是,具体问题具体分析,实在找不到的,可以在这篇文章留言,我会帮助你),在最底部加入以下代码:
//连接数量 $match_num_from = 1; //一个关键字少于多少不替换 $match_num_to = 2; //一个关键字最多替换 //连接到WordPress的模块 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 = "".addcslashes($cleankeyword, '$').""; $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 . ') (?!(([^<>]*?)>)|([^>]*?))\'s' . $case; $content = preg_replace($regEx,$url,$content,$limit); $content = str_replace( '%&&&&&%', stripslashes($ex_word), $content); } } return $content; }
然后再去写文章试试吧~是不是可以链接啦~