移植 wordpress 插件 Baidu Sitemap Generator 到 SAE(KV版)
**Baidu Sitemap Generator For SAE(KV版) : **
*只是简单移植,在能用的情况下不保证没有其他不足的地方
什么是 Baidu Sitemap Generator ?
This pulgin generates a Baidu XML-Sitemap for WordPress Blog. | 生成百度 Sitemap XML、HTML 文件。就相当于网站被百度–全球最大的中文搜索引擎订阅,进而为您的网站带来潜在的流量。
为什么要移植这个插件?
众所周知,新浪云计算平台(SAE)是没有本地文件写入(777)权限的,这直接导致很多要动态生成文件的WP插件不能使用,只能通过移植来适应SAE的环境
如何解决777权限问题 ?
SAE不开放777权限除了保证安全性之外,还因为其特殊的服务器架构(分布式、云计算,哎,我也是一知半解的,反正就是不能写本地),但是官方提供了很多其他的替代、解决方案(Storage、Memcache)都能解决无法写本地的问题。
具体有怎么样的移植思路?
首先,我们可以看 wordpress for SAE 中已经移植过来的插件 Google sitemap ,在插件源代码文件sitemap-core.php GetXmlPath()函数中,我发现定义存储路径的代码如下图所示:
而且官方文档里面也有那么一句话,是值得我们注意的:
为最大程度降低应用移植的难度,SAE为Storage、Memcache提供了wrapper封装,分别对应”saestor://”和”saemc://”,对于大部分应用,只需要修改目录前缀即可完成代码迁移。
着手开始移植** Baidu Sitemap Generator**
①首先,我们去Wordpress 那里去把官方插件给下载回来
下载地址:http://wordpress.org/extend/plugins/baidu-sitemap-generator/
②把静态文件生成的路径修改为KVDB存储路径
打开Baidu Sitemap Generator 的核心文件baidu_sitemap.php,找到负责xml地图文件和sitemap.html静态文件写入的函数—build_baidu_sitemap()
1、先修改生成xml地图文件那部分,未修改前代码如下
1 | /** save XML file as sitemap_baidu.xml **/ |
添加入KVDB存储路径,修改后的代码为(去掉if里面条件判断)
1 | /** save XML file as sitemap_baidu.xml **/ |
2、再修改生成HTML地图文件那部分,跟上面的大同小异,未修改前的代码
1 | $GetHomePath = GetHomePath(); |
修改后的代码段
1 | $GetHomePath = GetHomePath(); |
** 后话:这样,自动生成的sitemap.html 和 sitemap.xml 在KVDB路径下面而非网站的根目录下面,有什么办法能把这2个静态文件“转移”到网站的根目录下面呢**
请点击查看我的另一篇博文:
SAE平台中把KVDB里的sitemap文件 URL重写成域名根目录下的文件