让代码更简单

Baidu Sitemap Generator网站地图插件白屏不更新解决办法

重要:本文最后更新于2018-12-05 10:59:26,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

前几天升级了系统环境,web环境也进行了大升级,效果很明显,打开代码狗博客是不是被我的WordPress速度惊到了呢?

网站打开速度是提升了,各种问题也接踵而至,今天我发现百度并没有收录我近几天的文章,于是查看了下站点地图,发现一个重大问题,站点地图没有更新,最新记录仍然停留在升级系统环境之前。于是打算进后台手动点击按钮更新下地图,然而点击插件的更新按钮后却出现白屏什么内容都没有。开始我还以为是文件没有写权限,检查权限后并没有发现权限问题。估计是PHP的问题,因为我已经经历过好几次PHP不兼容的问题了。百度后发现不少网友有过Baidu Sitemap Generator插件白屏不更新网站地图的经历,于是按照如下方法修改了Baidu Sitemap Generator插件中不兼容的PHP代码。

 preg_split 替换掉 split

PHP说明文档上明确说明,split方法支持版本为PHP4、PHP5。并建议放弃它,preg_split可以替代它。

 preg_split 替换掉 split

preg_split 替换掉 split

将Sitemap Generator插件目录下的sitemap-function.php文件的439行和 baidu_sitemap.php文件的308行,使用preg_split替换掉split方法,改成如下:

复制
list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = preg_split( '([^0-9])', $blogtime );

之所以有两个地方要改,是因为一个是生成xml的地图所用函数,另一个是html所用,如果你需要记得一定要改,不然html地图不会更新!然后再修改baidu_sitemap.php文件的第19-23行,找到如下代码:

复制
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');
}

将第22行中的数字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');
}

保存后替换掉原文件即可。这次问题波及所有PHP7及以上版本,请注意检查你们的Baidu Sitemap Generator网站地图插件是否仍在正常工作,查看网站地图中的最新更新日期是否正确!

感觉很棒!可以赞赏支持我哟~

2 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐