升级PHP 8.2与WP 6.3后get_option()无法返回users_can_register数据库值
WordPress注册功能故障:
get_option('users_can_register')返回空但数据库值正常 问题背景
近期完成多项环境及配置变更:升级PHP至8.2、升级WordPress至6.3、通过WordFence插件添加reCaptcha防垃圾注册(后已禁用)。变更后网站新用户注册功能完全失效,无法定位具体触发原因。
核心异常
- 直接查询数据库
wp_options表,users_can_register选项值为1(符合预期) - 调用WordPress核心函数
get_option('users_can_register')返回空字符串,导致注册功能被禁用 - WP后台「常规设置」页无法启用注册选项(即使手动修改数据库值为1,页面仍显示禁用状态)
已排除的可能性
- 禁用所有插件后问题依旧
- 切换至Twenty TwentyThree默认主题后问题依旧
- 降级WP至6.2.2再重装6.3,问题未解决
- 其他
wp_options选项(如blogname)调用get_option()均返回正常值 - 本地MAMP环境无此异常,推测仅生产环境存在未知损坏
注:升级后区块编辑器曾故障,安装Gutenberg插件已修复
已尝试的排查步骤
- 禁用所有插件
- 切换至Twenty TwentyThree主题
- 在
wp-admin/options.php和options-general.php文件中添加错误日志排查 - 编写独立PHP页面,直接测试
get_option('users_can_register')及相关函数调用 - 检查服务器错误日志
- 清理所有缓存(含W3TC插件缓存)
- 在AWS Elastic Beanstalk默认Nginx平台重新部署完整代码包
寻求进一步排查方向
可提供完整已安装插件列表(包括WordFence、W3TC、高度定制化的Event Espresso等),希望得到针对性的排查思路。
内容的提问来源于stack exchange,提问作者LauraSuzy
相关产品推荐
相关产品推荐

