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

获取禁用状态下的选项页面值时代码异常问题排查

WordPress插件复选框选项异常问题解决

问题根源

当复选框未勾选时,get_option('my_options_setting')返回的是空字符串(或false,若选项从未被保存过),而非数组。此时直接访问$options['css']会触发PHP警告——你试图从非数组类型中获取数组元素,这就是代码异常的原因。

修复方案

方案1:先验证数组类型与元素存在性

在判断css值之前,先确保$options是数组且css键存在:

$options = get_option('my_options_setting');

if (is_array($options) && isset($options['css']) && $options['css'] == '1') {
    function load_admin_styles() {
        wp_enqueue_style('custom', CSS_PATH . 'custom.css');
    }
    add_action('admin_enqueue_scripts', 'load_admin_styles');
}

方案2:给get_option设置默认空数组

调用get_option时传入第二个参数(默认值)为空数组,确保$options始终是数组类型,避免非数组访问报错:

// 第二个参数设为空数组,保证$options永远是数组
$options = get_option('my_options_setting', []);

if ($options['css'] == '1') {
    function load_admin_styles() {
        wp_enqueue_style('custom', CSS_PATH . 'custom.css');
    }
    add_action('admin_enqueue_scripts', 'load_admin_styles');
}

补充说明

你误以为空值和未设置的效果一致,但实际上:

  • 复选框未勾选时,选项值为空字符串
  • 选项从未被保存时,get_option返回false
    这两种情况都不是数组,直接访问数组键必然报错。通过上述方案可以彻底规避这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:12:43