手柄君的小阁

个人私货聚集地

WordPress不用插件文章中的外链自动转内链(修改增强版)

本文最后更新于 2018 年 2 月 3 日,其中的内容可能有所发展或发生改变,敬请注意。

转载信息:

这篇文章转载来自:http://www.xmgho.com/archives/227.html
作者:星梦小智

SEO,这个的东东我不懂。但知道知道,凡有一点SEO基础的筒子都明白一个道理,即:绝不能容忍自己的权重流失!特别是指向那些不必要的站点。所以,我要想方设法把所有的出站链接都干掉了,包括版权信息,可谓干尽所有恶俗事!
有人说,自动转外链用过插件不就行了吗?试过dodo 写的 anylink插件,但发现会出现影响网站性能等等问题,有时点多次导航出现无法链接,卧槽!我还能好好的玩Wordpress吗?于是,准备折腾,不断度娘,发现一个不错的,结果呢?还是不行,尼玛坑爹啊!不过,看了这么多文章,倒是学会了如何给外链(包括评论中留的链接)加Nofollow标签,谁知道报错^经过不断折腾,总算解决问题了……现在来个外链看看效果先……

请点击我:

WordPress不用插件文章中的外链自动转内链

是不是很好看样子。哈哈。。但是你别看那文章了,给出的代码是有问题的,反正我折腾报错,现在公布源码:

进入主题:

首先,在你当前使用的主题的 functions.php 中加入以下代码

// 自动给文章的外部链接添加nofollow属性
add_filter('the_content','web589_the_content_nofollow',999);
function web589_the_content_nofollow($content){
preg_match_all('/href="(http.*?)"/',$content,$matches);
if($matches){
foreach($matches[1] as $val){
if( strpos($val,home_url())===false )
$content=str_replace("href=\"$val\"", "rel=\"nofollow\" href=\"" . get_bloginfo('wpurl'). "/link?url=" .base64_encode($val). "\"",$content);
}
}
return $content;
}

然后呢,最近才在使用中发现问题 代码中strpos搜索的是home_url(),但实际上呢,我肯定希望我别的一些域名不被转码 这时候,我把home_url()改成了"bysb.net"
这样搜索到bysb.net以外的域名才转换,类似cdn.bysb.net/previous.bysb.net都不会被转换了 如果你想要更多域名的话 就自己想办法吧,也不会很难的。

然后在网站根目录下新建个 link 的文件夹,在其中写个 index.php 的文件,内容如下(请保存为UTF-8):
<!--?php $url = $_GET['url']; $a = ''; if( $a==$url ) { $b = "http://www.你的域名/"; // echo 'true'; } else { $b = $url; $b = base64_decode($b); } //Template Name:链接跳转(有过度) ?-->

我最后说一句 这年头还SEO 如果不是做一些奇怪的站 比如本站 意义并不大 搞这个真没啥用的

  1. 头像 晨旭说道:

    噫,拿走了233

    1. 头像 晨旭说道:

      可惜我ajax站内链接默认ajax= =

    2. 头像 晨旭说道:

      诶,又被我机智的解决了2333

      1. 头像 Handle说道:

        所以说超赞对不对!?

        1. 头像 晨旭说道:

          感觉并无卵用→_→

          1. 头像 手柄君~说道:

            我站外链多,防止外链权重流失+可以在跳转页面设置统计信息来统计跳转今天有多少次

        2. 头像 晨旭说道:

          然而都是指向百度云2333无所谓

来一发吐槽