调用user.php中未定义的函数get_userdata

时间:2018-06-11 作者:Jan Doggen

我的网站错误日志充满

[lsapi:error] [...] Backend fatal error: PHP Fatal error:  
Call to undefined function get_userdata() 
in /home/.../public_html/wp-includes/user.php on line 460
。。。并且站点不加载(空白页,无源)

最近所做的唯一更改是Wordpress和插件更新(我不知道是哪些更新,何时更新);没有任何编程。

This answer 让我怀疑插件确实覆盖了get_userdata, 但递归搜索function get_userdatawp-content\\plugins 文件夹(通过FTP下载整个站点后)找不到任何内容(甚至手动检查get_userdata 只查找函数调用,不查找定义)。

wp_settings.php 看起来不错,相关部分:

// Load active plugins.
foreach ( wp_get_active_and_valid_plugins() as $plugin ) {
    wp_register_plugin_realpath( $plugin );
    include_once( $plugin );
}
unset( $plugin );

// Load pluggable functions.
require( ABSPATH . WPINC . \'/pluggable.php\' );
require( ABSPATH . WPINC . \'/pluggable-deprecated.php\' );

// Set internal encoding.
wp_set_internal_encoding();
也许我可以用this 7 year old hack 在里面user.php, 但这看起来很奇怪。为什么我要修补Wordpress文件?

当然,我的主要怀疑仍然是插件。我有选择地禁用了所有插件this trick, 重命名插件文件夹名称。

然后,在重新命名后,the site was suddenly accessible again, WP登录也是如此。

这些插件文件夹名称为:

admin-language
akismet
backupwordpress
broken-link-checker
contact-form-7
flatbook-custom-posts
google-analytics-dashboard-for-wp
gravityforms
mollie-forms
pronamic-ideal
Update 当然,网站“突然”起作用了:我在控制面板中注意到所有插件都被停用(文本“激活”可用)。

如果我现在激活Gravityforms,网站将再次挂起。所以我知道这是罪魁祸首,但我该怎么办呢?

1 个回复
最合适的回答,由SO网友:Jan Doggen 整理而成

这毕竟是一个插件。由于几个激活的插件似乎触发了错误,我想这里常见的插件是什么

结果是admin-language 是罪魁祸首。事后看来,这可能并不奇怪:那一页说:

这个插件还没有在WordPress的最新3个主要版本中测试过。它可能不再被维护或支持,并且在与较新版本的WordPress一起使用时可能存在兼容性问题。

结束

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。