You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress插件自定义选项升级后重置网站出现数组偏移错误

问题解决:WordPress调用自定义选项触发"array offset on bool"警告

问题背景

使用GitHub上的RationalOptionPages类开发WordPress插件自定义选项,重置网站前运行正常,重置后出现如下警告:

Notice: Trying to access array offset on value of type bool
错误路径:C:\xampp\htdocs\wordpress\wp-content\plugins\redux-framework\init.php第3行

所有选项调用都会触发该警告,保存一次选项后警告消失。当前调用选项的代码为:

$opt_sectionas = get_option('sample-page')['asp_section_option'];
$opt_carousel = get_option('sample-page')['asp_carousel_option'];
$opt_animate = get_option('sample-page')['asp_animate_aos_option'];
$opt_columns = get_option('sample-page')['asp_advance_columns_option'];

问题原因

重置网站后,sample-page这个选项尚未被初始化到数据库中,此时get_option('sample-page')会返回false(而非预期的数组)。直接对布尔值false进行数组索引操作,就会触发该警告。

当保存一次选项后,WordPress会将sample-page对应的选项数组写入数据库,此时get_option返回正常数组,警告自然消失。

解决方案

方案1:先校验再取值(兼容PHP低版本)

先获取选项集合,再通过isset校验索引是否存在,不存在则设置默认值:

$sample_options = get_option('sample-page');
$opt_sectionas = isset($sample_options['asp_section_option']) ? $sample_options['asp_section_option'] : '';
$opt_carousel = isset($sample_options['asp_carousel_option']) ? $sample_options['asp_carousel_option'] : '';
$opt_animate = isset($sample_options['asp_animate_aos_option']) ? $sample_options['asp_animate_aos_option'] : '';
$opt_columns = isset($sample_options['asp_advance_columns_option']) ? $sample_options['asp_advance_columns_option'] : '';

方案2:使用空合并运算符简化(PHP 7.0+)

先给get_option设置默认空数组,再用??运算符快速取默认值:

$sample_options = get_option('sample-page') ?? [];
$opt_sectionas = $sample_options['asp_section_option'] ?? '';
$opt_carousel = $sample_options['asp_carousel_option'] ?? '';
$opt_animate = $sample_options['asp_animate_aos_option'] ?? '';
$opt_columns = $sample_options['asp_advance_columns_option'] ?? '';

方案3:优化插件初始化逻辑

检查RationalOptionPages的插件激活代码,添加自动初始化默认选项的逻辑,确保网站重置后,插件激活时就将sample-page的默认选项写入数据库,避免选项缺失。


内容的提问来源于stack exchange,提问作者Fernando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:45:48