部署在Azure的WordPress后台出现_get_custom_object_labels()未定义致命错误求助
解决Windows Azure上WordPress后台致命错误:Call to undefined function _get_custom_object_labels()
错误详情
Fatal error: Uncaught Error: Call to undefined function _get_custom_object_labels() in D:\home\site\wwwroot\wp-includes\taxonomy.php:722 Stack trace: #0 D:\home\site\wwwroot\wp-includes\class-wp-taxonomy.php(486): get_taxonomy_labels() #1 D:\home\site\wwwroot\wp-includes\class-wp-taxonomy.php(290): WP_Taxonomy->set_props() #2 D:\home\site\wwwroot\wp-includes\taxonomy.php(532): WP_Taxonomy->__construct() #3 D:\home\site\wwwroot\wp-includes\taxonomy.php(82): register_taxonomy() #4 D:\home\site\wwwroot\wp-settings.php(402): create_initial_taxonomies() #5 D:\home\site\wwwroot\wp-config.php(98): require_once('D:\\home\\site\\ww...') #6 D:\home\site\wwwroot\wp-load.php(50): require_once('D:\\home\\site\\ww...') #7 D:\home\site\wwwroot\wp-admin\admin.php(34): require_once('D:\\home\\site\\ww...') #8 D:\home\site\wwwroot\wp-admin\index.php(10): require_once('D:\\home\\site\\ww...') #9 {main} thrown in D:\home\site\wwwroot\wp-includes\taxonomy.php on line 722
已完成排查步骤
- 确认PHP版本为7.4.30
- 重新上传wp-includes和wp-admin目录,确保核心文件完整
- 禁用所有插件并切换至默认主题,问题仍存在
进一步排查与解决方向
1. 验证wp-includes/post.php文件完整性
_get_custom_object_labels()函数定义在wp-includes/post.php中,需确认:
- 该文件存在于服务器对应路径
- 文件内容完整,对比同版本WordPress安装包中的post.php,确保函数未被删除或篡改
- 若文件异常,单独重新上传该文件
2. 检查Azure App Service文件权限
通过Azure门户的高级工具 > Kudu控制台:
- 查看
wp-includes/post.php的权限设置,确保应用进程拥有读取该文件的权限 - 若权限异常,通过Kudu文件管理器调整权限(Windows环境下确保文件继承父目录权限即可)
3. 排查wp-config.php自定义代码
- 暂时注释掉
wp-config.php中除数据库配置、安全密钥等必要内容外的自定义代码(如自定义常量、加载逻辑等) - 注释后尝试访问后台,验证是否因自定义代码干扰核心文件加载导致问题
4. 清空PHP OPcache缓存
核心函数未被识别可能是OPcache缓存了旧文件版本:
- 在Kudu控制台执行命令:
php -r "opcache_reset();" - 或直接在Azure门户重启App Service实例,强制清空缓存
5. 检查必须使用的插件(MU-Plugins)
- 查看
wp-content/mu-plugins目录,若存在文件,暂时将该目录下所有文件移至其他位置备份 - 测试后台访问,排查是否为必须使用的插件干扰核心函数加载
内容的提问来源于stack exchange,提问作者Stanley Ezeokeke
相关产品推荐
相关产品推荐

