• 明天我们家宝宝满月了
  • 一晚上忙了好几个小时,终于把支付前台通知解决了
  • 原计划要增加另外一种支付方案,现在可能要被搁置了
  • 今天上午刚刚注册了华为云,然后刚刚华为云的客服小姐姐就来电话了,小姐姐声音挺好听的
  • 今天无意中注册了华为云,然后发现跟阿里云基本一个模样,甚至连价格都一样
  • 继续测试一下
  • 发现一个问题就是,微信语音发送说说的时候,不要拦截没有UA的数据请求
  • 测试一下连接
  • 终于下雪了
  • 有赞的支付暂时用不了了,所以重新开发另一个支付插件

使用wp_get_attachment_url函数自动替换媒体库文件路径

WordPress 云落 4年前 (2015-02-16) 545次浏览 已收录 5个评论
文章目录[隐藏]

使用wp_get_attachment_url这个比较陌生的函数,将WordPress后台的媒体库的文件的URL自动替换

wordpress-theme

前言

昨天在开发主题的时候,想试试能不能删除服务器本地文件,只保留七牛CDN文件,因为我的主题完美支持各种缩略图,所以一咬牙,删除了所有文件,为服务器腾出来300M大小的空间,前台没有一丝问题,但是后台却发生了问题,就是媒体库图片全部不现实了,在添加媒体的时候,全是裂图。为了解决这个问题,就有了今天这篇文章

问题思路

处理这个问题,我使用了浏览器的审查元素,发现媒体库的文件路径仍然是主机的路径,文件域名还是我的.me,但是实际上我的本地文件都被删光了,没有了,所以这个路径是没有文件的,但是如果把我的本地域名.me换成我的七牛域名.me/wp-content/uploads图片就可以显示了,明白了大致的思路下面就开始实际操作了。

相关函数

在查阅之后发现,WordPress的确有管理媒体库的相关函数,其中wp_get_attachment_url函数就是管理这个功能的,但是百度谷歌之后才发现这个很熟非常冷僻,网上几乎没啥深入的讨论,所以只有自己研究了。
查看官方文档和WordPress源程序之后发现了关于这个函数的信息,这个函数位于WordPress系统文件wp-includespost.php处,关键信息在4959行,好吧,有了这个过滤器就好办了。

代码部署

将以下代码插入主题functions.php文件倒数第二行里面

//自动替换媒体库图片的域名
function yunluo_attachment_replace($text){
	$replace = array(''.get_bloginfo('url').'' => '.me/wp-content/uploads');//这里自己设置自己的七 牛域名
	$text = str_replace(array_keys($replace), $replace, $text);
	return $text;
}
if ( is_admin() ) {
add_filter('wp_get_attachment_url', 'yunluo_attachment_replace');
}

后语

这个函数虽然很简短,但是却极大的增强了本站主题的七牛兼容性,目前这款主题可能是支持七牛最完美的主题吧,开启七牛后,网站静态资源七牛化,缩略图七牛化,后台文件七牛化,现在我的本地服务器文件全部删掉了,一个字:爽!

-- 完 --
weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用wp_get_attachment_url函数自动替换媒体库文件路径
喜欢 (5)
云落
关于作者:
无折腾,不生活,我是一个WordPress菜鸟,一个玩淘宝的卖家,欢迎你认识我,我是云落!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(5)个小伙伴在吐槽
  1. 这个略屌 :wink:
    同盟源2015-02-27 10:54 回复 Windows 7 | Chrome 39.0.2171.99
    • 云落
      必须的 :lol: :lol: :lol:
      云落2015-02-27 12:01 回复 Windows 7 | Chrome 38.0.2125.122