关注云服务器
相关知识分享

wordpress写文章的时候自动给tag加上链接

我们在用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;
 }

然后再去写文章试试吧~是不是可以链接啦~

赞(0) 打赏
未经允许不得转载:云测速 » wordpress写文章的时候自动给tag加上链接

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1
    游风

    wordpress安装问题,php版本安装了5.3并运行,引擎也是nginx+apache 域名解析备案都弄好了,但是输入域名打不开wordpress安装界面,的安装界面,出现的是这个问题Parse error: syntax error, unexpected '.', expecting '&' or T_VARIABLE in /www/web/我的网址/public_html/wp-includes/functions.php on line 1064完全看不懂,要怎么解决呀?

    游风6个月前 (03-18)回复
    • 四时花竞巧

      你这应该是php版本的问题,可以给我一下你的安装地址,我帮你看看。

      四时花竞巧6个月前 (03-19)回复

觉得文章有用就打赏一下文章作者吧~

微信扫一扫打赏