自从有了七牛大部分图片就都放到了七牛。
然后七牛的图片外链地址是酱紫的。
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 。
然后刷新了一下页面然后神奇的事情发生了。如下图所示,插入的图片地址依然是
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个问题,我自己觉得是不会消耗自身空间的流量吧,但是由于对这方面真的是不太懂所以还是写出来了。希望懂的朋友给解答下~!
还可以酱紫? 😉
感谢博主的分享~谢谢
七牛不是可以直接自定义域名吗
wp强大的过滤机制
不消耗自身流量
很厉害的样子 试试