百度不支持索引型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地图了。
参考文章
百度不支持索引型sitemap,Baidu Sitemap Generator 报错
来源:一棵树789 - https://www.yksbl.com/