wordpress外链图片转内链?

发布于 / 折腾 / 9 条评论

自从有了七牛大部分图片就都放到了七牛。
然后七牛的图片外链地址是酱紫的。

https://i.todayby.com/i/qn/1831813898-3606696_o.jpg

突然想把七牛的域名换成自己的域名。
想起曾经在网上见到过wordpress外链转内链的代码。代码如下:
1.在functions.php中加入如下代码
add_filter('the_content','baezone_the_go_url',999);
function baezone_the_go_url($content){
preg_match_all('/href="(.*?)"/',$content,$matches);
if($matches){
foreach($matches[1] as $val){
if( strpos($val,home_url())===false ) $content=str_replace("href=\"$val\"", "href=\"" . get_bloginfo('wpurl'). "/go?url=" .base64_encode($val). "\"",$content);
}
}
return $content;
}

2.在网站根目录新建一个目录“go”,在其下创建index.php文件,在index.php加入以下代码:

< ?php $url = $_GET['url']; $url = base64_decode($url); header("Location:" . $url); ?>

然后不是本站的链接就会变为

http://todayby.com/go?url=aHR0cDovLzdmdmk1My5jb20xLnowLmdsYi5jbG91ZGRuLmNvbS8xODMxODEzODk4LTM2MDY2OTZfby5qcGc=

这样的链接。
既然链接可以转换,那么外链的图片地址能不能转换呢?虽然自己写不出代码,但是通过这几年使用wordpress也学会了一些简单的知识。
抱着试一试的心态,将第1步代码中的 href 全部替换成了 src 。
然后刷新了一下页面然后神奇的事情发生了。如下图所示,插入的图片地址依然是
wordpress外链图片伪本地化

https://i.todayby.com/i/qn/1831813898-3606696_o.jpg

并且图片正常显示,但是查看页面源代码时图片的地址变成了

http://todayby.com/go?url=aHR0cDovLzdmdmk1My5jb20xLnowLmdsYi5jbG91ZGRuLmNvbS8xODMxODEzODk4LTM2MDY2OTZfby5qcGc=

wordpress外链图片转内链完整步骤:
1.在functions.php中加入如下代码:

add_filter('the_content','baezone_the_go_url',999);
function baezone_the_go_url($content){
preg_match_all('/src="(.*?)"/',$content,$matches);
if($matches){
foreach($matches[1] as $val){
if( strpos($val,home_url())===false ) $content=str_replace("src=\"$val\"", "src=\"" . get_bloginfo('wpurl'). "/go?url=" .base64_encode($val). "\"",$content);
}
}
return $content;
}

2.在网站根目录新建一个目录“go”,在其下创建index.php文件,在index.php加入以下代码:

< ?php $url = $_GET['url']; $url = base64_decode($url); header("Location:" . $url); ?>

使用其他主题测试时,查看源代码插入的外链图片代码是酱紫的

src="http://todayby.com/go?url=aHR0cDovLzdmdmk1My5jb20xLnowLmdsYi5jbG91ZGRuLmNvbS8xODMxODEzODk4LTM2MDY2OTZfby5qcGc="

但是使用当前主题Island则会显示:

src="http://todayby.com/go?url=ZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0=" data-echo="https://i.todayby.com/i/qn/1831813898-3606696_o.jpg"

似乎是因为主题开启了Lazyload加载图片。

虽然可以正常显示但是还有一些疑问:
1.这个算不算伪本地化?
2.对所谓的SEO是不是有一定的影响?
3.图片是放在七牛的,这样修改后,打开网页加载图片时会不会消耗自身空间流量?
对于第3个问题,我自己觉得是不会消耗自身空间的流量吧,但是由于对这方面真的是不太懂所以还是写出来了。希望懂的朋友给解答下~!

  1. 还可以酱紫? 😉

  2. 感谢博主的分享~谢谢

  3. 七牛不是可以直接自定义域名吗

    1. @神父 要充值十一块才可以自定义域名。
  4. wp强大的过滤机制

  5. 不消耗自身流量

    1. @大袋鼠 哦!谢谢哦!
  6. 很厉害的样子 试试