如何修复WordPress中call_user_func_array(找不到wp_initialize_theme_preview_hooks)错误
错误详情
致命错误:未捕获的TypeError: call_user_func_array(): 参数#1 ($callback)必须是有效的回调函数,函数"wp_initialize_theme_preview_hooks"未找到或函数名称无效
错误文件:/home/trickit/public_html/wp-includes/class-wp-hook.php:324
调用栈:
#0 /home/trickit/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)
#1 /home/trickit/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#2 /home/trickit/public_html/wp-settings.php(506): do_action('plugins_loaded')
#3 /home/trickit/public_html/wp-config.php(97): require_once('/home/trickit/p...')
#4 /home/trickit/public_html/wp-load.php(50): require_once('/home/trickit/p...')
#5 /home/trickit/public_html/wp-blog-header.php(13): require_once('/home/trickit/p...')
#6 /home/trickit/public_html/index.php(17): require('/home/trickit/p...')
#7 {main}
错误抛出位置:/home/trickit/public_html/wp-includes/class-wp-hook.php第324行
修复步骤
临时禁用所有插件排查冲突
通过FTP或主机文件管理器,进入wp-content/plugins目录,将目录重命名为plugins-disabled。刷新网站,若错误消失,说明是插件冲突。再逐个恢复插件名称,定位问题插件后删除或更新。修复损坏的WordPress核心文件
wp_initialize_theme_preview_hooks属于WordPress核心函数,核心文件损坏会导致该错误:- 下载最新版WordPress压缩包,解压后删除
wp-content目录和wp-config.php文件 - 将剩余的
wp-admin、wp-includes目录及根目录下的.php文件上传到服务器,覆盖原有文件(操作前备份核心文件) - 刷新网站验证修复效果
- 下载最新版WordPress压缩包,解压后删除
重置主题预览相关设置
若主题预览功能异常引发错误:- 通过phpMyAdmin进入数据库,找到
wp_options表(表前缀可能不同) - 搜索并删除
theme_mods_当前主题名、custom_css_当前主题名的选项记录 - 刷新网站后重新配置主题
- 通过phpMyAdmin进入数据库,找到
检查主题函数文件
打开当前主题的functions.php文件,排查是否存在错误调用wp_initialize_theme_preview_hooks的代码,或误删相关函数引用,如有则修正或删除错误代码
内容的提问来源于stack exchange,提问作者Imran Sorker

