WordPress自动设置标签Tag自动内链无插件实现方法

本文介绍了一种无需使用插件即可在WordPress中实现自动TAG转换为内部链接的方法,通过添加自定义代码到主题的Functions.php文件中,可以有效减少插件依赖,提高网站性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

之前一直有使用WP keyword Link Plugin插件,但是发现这个插件已经好久没有更新,好像目前在平台中已经找不到。所以准备替换掉这个插件。类似的WordPress插件还是有很多的,比如Keywords to Links Converter、Auto Tag Links等都可以实现。

本着少用插件,能不用插件就不用的策略,所以准备还是无插件实现。

//自动TAG转内链
$match_num_from = 2; // 一个TAG标签出现几次才加链接
$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 = ".str_replace('%s',addcslashes($cleankeyword, '$'),__('View all posts in %s'))."\"";
        $url .= ' target="_blank"';
        $url .= ">".addcslashes($cleankeyword, '$')."";
        $limit = rand($match_num_from,$match_num_to);
        $content = preg_replace( '|(]+>)(.*)('.$ex_word.')(.*)(]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
        $content = preg_replace( '|(.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
        $cleankeyword = preg_quote($cleankeyword,'\'');
        $regEx = '\'(?!((<.*?)|(. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?))\'s' . $case;
        $content = preg_replace($regEx,$url,$content,$limit);
        $content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
      }
   }
   return $content;
}

将代码添加到当前主题Functions.php文件中。如果有冲突出现问题,我们需要检查是不是不兼容。检查不出来的话,我们只能使用插件实现。

原文地址:www.dungei.net

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值