今天一网友给奶爸说他的WordPress网站打不开了,让帮忙看下。
打开他网站提示“Fatal error: Call to undefined function wp_doing_ajax() in /home/vgr8rn8v8/wwwroot/wp-content/plugins/siteorigin-panels/siteorigin-panels.php on line 45”
问题原因
从错误原因看,问题出在wp_doing_ajax() 这个函数文件上。
而wp_doing_ajax() 这个函数是WordPress 4.7以后新增的一个函数,而正好这个网友使用的是老版本WordPress。
相关资料可以参考官方文档:https://developer.wordpress.org/reference/functions/wp_doing_ajax/
wp_doing_ajax()
用来判定当前请求是否是 Ajax请求,如果是WordPress Ajax请求,则为true,否则为false。
function wp_doing_ajax() { /** * Filters whether the current request is a WordPress Ajax request. * * @since 4.7.0 * * @param bool $wp_doing_ajax Whether the current request is a WordPress Ajax request. */ return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ); }
解决方法
从错误提示就很明显可以看出,问题出在siteorigin-panels/siteorigin-panels.php的45行。问题就是插件的兼容问题了。
想要解决掉问题很简单,使用FTP工具,到网站服务器上把siteorigin-panels这个文件夹删除就可以了。
如果你还想使用这个插件,那么你需要先升级WordPress到新版本,然后再次安装。如果无法升级,你需要先检查下自己服务器环境是否满足新版版本WordPress的硬件要求。WordPress配置需求 安装WordPress需要满足的硬件条件
其他情况
有些时候出现网站打不开的情况可能并不是因为插件的问题,奶爸之前分享过WordPress网站503错误终极故障排除指南,感兴趣的可以阅读一下。