百度不支持索引型sitemap,但是使用Baidu Sitemap Generator 报错怎么办

不久前登陆百度站长平台,发现提交的网站地图百度不收录了,提示说是不支持索引型sitemap的网站地图,我之前用的是 Google Sitemaps,是索引型的,也就是包含很多的文件夹,文件夹里面又包含很多的链接。

查了下百度,因为很多的灰色站点使用的这种类型的网站地图工具,也是为了打击垃圾站点,不过百度变化实在是措不及防,其实还是我很久没有登录百度站长平台了。

看了网上说解决办法就是重新安装网站地图插件Baidu Sitemap Generator可以使用,将我高兴坏了。但是安装上去后,生成百度sitemap地图的时候报错了。发现网上基本没人介绍如何修改,就做第一个吃螃蟹的人,给大家介绍一下解决办法。

当然,这并不是我第一次发这篇文章,因为暂时没有什么拿得出手的项目,就发了这篇文章。

研究了好久,发现应该是这款插件太老了,PHP7版本废弃了一些PHP函数,split这个函数在PHP7版本已经不支持了,因此必须替换成PHP7版本的preg_split函数。

因此需要做两方面的更改:

第一,修改Baidu Sitemap Generator插件目录下的sitemap-function.php文件的439行和baidu_sitemap.php文件的308行,就是用preg_split替换掉split,特别简单。

第二,修改Baidu Sitemap Generator插件目录下的baidu_sitemap.php,

原本的代码是这样的:

function baidu_sitemap_menu() {
/** Add a page to the options section of the website **/
if (current_user_can('manage_options'))
add_options_page("Baidu-Sitemap","Baidu-Sitemap", 8, __FILE__, 'baidu_sitemap_optionpage')
}

把8换成’manage_options’
变成了这样:

function baidu_sitemap_menu() {
/** Add a page to the options section of the website **/
if (current_user_can('manage_options'))
add_options_page("Baidu-Sitemap","Baidu-Sitemap", ’manage_options’, __FILE__, 'baidu_sitemap_optionpage')
}

修改完成后重启PHP,即可更新百度 XML地图了。

如果嫌修改代码太麻烦,也可直接去下载我修改好的。

插件下载地址:https://www.yks789.com/525.html

上一篇:使用 mqtt.fx 创建本地 mqtt 服务器测试 ESP32 mqtt_tcp 例程指南


下一篇:python量化分析日记