当前位置:首页 > 代码学苑 > 网建教程

移植WP插件至新浪SAE平台教程

来源:wordpress 作者: 2020-06-02

wordpress是世界上最为流行的博客建站程序,以网站模板、网站插件数量众多且功能完善而见长,在国内也不乏众多的使用者。然而,作为新浪SAE建站 平台中为数不多的默认推荐应用,wordpress却因为平台种种限制而导致大量原有插件资源需要移植才可以应用,而目前官方已完成移植的插件数量寥寥, 这给SAE平台上的使用者带来了烦恼。本文以我个人的插件移植实战为案例,分享经验,抛砖引玉。

国内wordpress爱好者应该大部分都听说并使用过Baidu Sitemap Generator这款Sitemap插件(插件作者:柳城博客)。因为新浪SAE平台不能设置目录777权限的问题,导致该插件目前不能直接应用,和众 多SAE使用者一样,我本人也一直希望官方能对此做一个移植,但很遗憾,至今只见到官方放出Google sitemap的移植版。插件久等不来的情况下,我个人做了一次移植尝试,并取得了成功,在这里分享一下方法:

与传统主机服务方式不同,新浪SAE不支持直接的目录写权限,而是通过分布式Storage存储服务解决。也就是说,凡是会在主机目录下生成文件的 插件都不能直接应用在SAE平台上。那么现有插件如何改造才能使用呢?为此我研究了一下官方发布的Google sitemap插件移植版,在插件源代码文件sitemap-core.php中,我发现了解决此问题的关键部分。在sitemap-core.php源 码第1385行,GetXmlPath()函数中,我发现定义存储路径的代码如下图所示:

注意图中标红的部分,该段代码提示我们,SAE平台将应用具有写入权限目录的路径定义为”saestor://wordpress/”,而未移植的 插件中,关于路径的获取通常用的是调用GetHomePath()函数获取,返回的结果则是网站域名的当前根目录路径,这个目录在SAE环境下不可写,所 以造成插件报错,这也就是问题的根源所在。

发现上面的官方处理方式后,我开始进行对应的Baidu Sitemap Generator 改造。

打开Baidu Sitemap Generator 的核心文件baidu_sitemap.php,找到负责xml地图文件和sitemap.html静态文件写入的函数

猜你喜欢
    无相关信息