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

如何在WordPress中获取CMB2主题选项页面的选项值?

获取CMB2主题选项页面的选项值

嘿,我来帮你搞定这个问题!既然你已经用CMB2创建了主题选项页面(你的代码里option_key是yourprefix_main_options对吧?),获取这些选项值其实很简单,主要有两种靠谱的方式,我给你详细拆解:

1. 用CMB2官方推荐的cmb2_get_option()函数

CMB2专门提供了这个函数来简化选项值的获取,它会自动帮你处理默认值、数据格式,还能避免直接操作数组可能出现的报错。

函数的基本用法是:

cmb2_get_option( $option_key, $field_id, $default_value );
  • $option_key:就是你注册选项页面时设置的option_key,对应你代码里的yourprefix_main_options
  • $field_id:你在CMB2字段中设置的id参数(比如你添加的输入框、开关的ID)
  • $default_value:可选参数,如果该选项还没设置值,就返回这个默认内容

举个实际例子,假设你在选项页面里添加了一个ID为site_header_text的文本字段,要获取它的值可以这么写:

// 获取头部文本的选项值,默认值设为"我的网站"
$header_text = cmb2_get_option( 'yourprefix_main_options', 'site_header_text', '我的网站' );

// 在模板中安全输出
echo esc_html( $header_text );

2. 用WordPress原生的get_option()函数

CMB2会把所有主题选项以关联数组的形式存在WordPress的wp_options表中,键名就是你的option_key。所以你也可以用WordPress自带的get_option()来获取整个选项数组,再从中提取需要的字段值。

示例代码:

// 获取整个主题选项数组,默认返回空数组避免报错
$main_options = get_option( 'yourprefix_main_options', array() );

// 提取单个字段值,先判断是否存在再取值,防止Undefined index错误
$header_text = isset( $main_options['site_header_text'] ) ? $main_options['site_header_text'] : '我的网站';

// 安全输出
echo esc_html( $header_text );

小提示

  • 不管用哪种方法,在模板中输出内容时记得用esc_html()、esc_attr()这类安全函数,防止XSS漏洞
  • 如果是在主题的函数文件中使用这些代码,建议把它们放在after_setup_theme或者init钩子里,确保CMB2已经加载完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:28:23