scribble

守望的麦子

About Projects Tool Guestbook

31 Mar 2010
WP不改数据库实现附件地址批量替换

WordPress在使用过程中有时需要更改附件的地址,比如要使用独立空间存放附件及主题图片、JS文件等(在《高性能网站建设指南》中,雅虎的前端工程师Steve Souders明确指出为网站的静态组件增加一个单独的域名能够增加网页组件的并行下载速度,从而提高网页的响应速度),我们可以通过SQL语句批量替换原网址,但是对于进行了大量自定义修改的主题,要进行替换相对就麻烦了。

这个时候我们可以通过“the_content” filter hook将要显示的所有包含“原域名+wp-content”的内容替换为所要设置的新域名。

代码如下:

<?php
 
/**
* Enter description here…
*
* @todo 新的域名可以通过配置页面进行配置
*
* @param unknown_type $content
* @return unknown
*/
 
function setting_another_domain_for_media($content) {
$content = str_replace( get_bloginfo('home').'/wp-content/','http://my.crazyenglish.info/',$content);
return $content;
}
 
add_filter( 'the_content','setting_another_domain_for_media',12 )
 
?>

当然,我们还可以在apache或者ngnix中通过mod_rewrite进行地址重写,重写规则如下:

server
{
listen 80;
server_name my.crazyenglish.info;
index index.html index.php index.htm;
root /www/my.crazyenglish.info/wp-content/;
}

保存,重启ngnix,内容中上传的多媒体以及保存在wp-content中的任何组件都将通过新的域名进行访问了。

Til next time,
Jason at 00:00

scribble

About Projects Tool Guestbook