WordPress站点出现add_theme_support()未定义致命错误,求解决方案
解决WordPress致命错误:Call to undefined function add_theme_support()
根据你提供的错误日志,核心问题是wp-includes/block-patterns.php尝试调用未定义的add_theme_support()函数,且已排除主题和插件影响,可按以下步骤排查:
1. 替换WordPress核心文件
add_theme_support()函数定义在wp-includes/theme.php中,出现未定义错误通常是核心文件损坏或缺失:
- 查看当前WordPress版本:通过FTP访问服务器,打开
wp-includes/version.php,找到$wp_version的值。 - 下载对应版本的WordPress安装包,解压后删除包内的
wp-content文件夹。 - 通过FTP将安装包内的
wp-admin、wp-includes文件夹,以及根目录的所有文件(除wp-config.php、wp-content文件夹、.htaccess外)上传到服务器,覆盖原有文件。 - 覆盖前建议备份原核心文件,防止意外。
2. 检查wp-config.php的加载逻辑
错误日志显示wp-config.php第97行调用了wp-settings.php,需确保:
wp-config.php中没有在require_once(ABSPATH . 'wp-settings.php');语句之前,调用依赖核心函数的自定义代码。如果有,将这些代码移到该语句之后,或直接删除测试。
3. 验证PHP版本兼容性
WordPress版本与服务器PHP版本不兼容也会引发核心函数加载异常:
- 通过主机控制面板或创建
phpinfo.php文件(内容为<?php phpinfo(); ?>)查看当前PHP版本。 - 对照WordPress官方兼容列表,调整PHP版本到对应范围(比如WordPress 6.0+建议PHP 7.4及以上)。
4. 修正文件权限错误
不正确的文件权限可能导致核心文件无法正常读取:
- 设置
wp-includes文件夹权限为755,文件夹内所有文件权限为644(可通过FTP工具或主机面板批量调整)。
关于Notice级错误的说明
日志中的is_embed()、is_search()调用错误属于连锁问题,解决致命错误后大概率会自动消失。若仍存在,需检查主题/插件代码,确保这些条件标签在wp钩子触发后调用,或仅在模板文件的合适位置使用,不要在functions.php的全局作用域直接调用。
内容的提问来源于stack exchange,提问作者Abdhu Bafadhal
相关产品推荐
相关产品推荐

