不久前登陆百度站长平台,发现提交的网站地图百度不收录了,提示说是不支持索引型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