为这个广泛的问题表示歉意,但我目前对错误日志条目并不十分熟悉。任何有关从哪里开始相关研究的指示,将不胜感激。
在过去的12个月中,我安装了Google Authenticate插件,该插件安装在我工作的WordPress驱动的电子商务网站上。直到最近的VPS和WordPress更新,插件才出现问题。由于上述更新,Google身份验证插件无法识别任何输入的代码。我不确定该错误是由WordPress更新还是VPS本身触发的。
然后我在尝试使用Google身份验证插件时检查了error_log
并看到了以下条目:
mod_fcgid: stderr: PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'remove_wpcf7' not found or invalid function name in /var/www/vhosts/example.com/httpdocs/wp-includes/class-wp-hook.php on line 286, referer: https://www.example.com/wp-admin/plugins.php
问题排查
作为标准,我停用了所有插件(WooCommerce插件除外)以及我创建的WordPress主题。然后,我仅激活了WordPress的Twenty Seventeen主题。错误仍然存在。让我想知道到底是什么引起了问题。
我可以看到有对WordPress核心文件的引用。也许有些不兼容?
任何有关此的指令,将不胜感激...即使只是帮助我扩展此问题。
答案 0 :(得分:1)
在代码中查找对“ remove_wpcf7”的任何引用,并在filter / hook中分配find方法。
在这种情况下,您可以找到例如错误调用的类中的方法。例如:add_filter('filter_name', 'method');
。您可以例如通过添加:add_filter('filter_name', array($this, 'method'));
或如果方法是静态的:add_filter('filter_name', array(CLASSNAME::class, 'method'));
希望对您有帮助
===
更新
编辑wp-includes / class-wp-hook.php第73行并添加:
public function add_filter( $tag, $function_to_add, $priority, $accepted_args ) {
if ($function_to_add === 'remove_wpcf7') {
throw new \Exception('Exception');
}
[...]
}
跟踪此未捕获的异常(如果可以使用xdebug扩展会更好),您将看到行正在创建此过滤器。
答案 1 :(得分:0)
尝试将此功能添加到您的WP中。
以下是添加到主题的function.php文件中的代码:
function remove_wpcf7(){
}
答案 2 :(得分:0)
最终找到了解决方案……它与服务器时间设置有关。
如果其他任何人的Google身份验证功能遇到类似问题,则需要确保服务器的时间设置与“ Internet的时钟”同步。