Php 自定义程序选项在自定义程序屏幕上不返回默认值

Php 自定义程序选项在自定义程序屏幕上不返回默认值,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,这是自定义程序预览中的意外行为,在使用复选框时使用'default'=>true 用例 我向定制器添加了一个复选框控件(任何页面都不重要): 我在任何地方都会这样使用它: get_option( 'my-checkbox', true ); //since its TRUE by default, here as well its TRUE 到目前为止还可以,如果我打开customizer,使用var\u dump(),在本例中,在主页中使用它,我会看到: 在主页中,在不打开定制程序的情况下

这是自定义程序预览中的意外行为,在使用
复选框
时使用
'default'=>true

用例

我向定制器添加了一个复选框控件(任何页面都不重要):

我在任何地方都会这样使用它:

get_option( 'my-checkbox', true ); //since its TRUE by default, here as well its TRUE
到目前为止还可以,如果我打开customizer,使用
var\u dump()
,在本例中,在主页中使用它,我会看到:

主页
中,在不打开定制程序的情况下,我将获得
TRUE
,这样就可以了

但是现在如果我在customizer中取消选中它,我会得到以下结果:

这是
get\u选项('my checkbox',true)中的默认值。
如果直接访问,
自定义程序预览
主页
中的此问题将具有正确的值

如果我希望值为
FALSE
(未选中),我需要保存2次,第一次保存选项以使其不存在
默认值,第二次实际保存
FALSE
(未选中)

这是wordpress中的错误吗?
调试
更详细地说,我发现我在
get\u选项('my checkbox',true)中得到了
'default'=>true
这是我在创建控件时设置的,这是在使用自定义程序时设置的

在这里,我将其更改为另一个默认类型,因此更清楚:

get_option( 'my-checkbox', 'default' );
主页中
,我得到了正确的值:

customizer
中,我得到
TRUE

这是错误的,因为在
主页中
直接打开它,我会得到
默认值


可以做些什么?我不想拉一个全局变量来检查我是否在自定义程序中。

首先创建代码并设置默认值,然后该值未设置到数据库,这就是为什么我们需要使用get\u theme\u mod函数的原因。此函数需要输入参数,例如第一个参数是名称,第二个参数是要显示的默认参数。然后,如果值保存到数据库,则函数返回数据库值,否则它将显示在第二个参数中添加的默认值。我希望这能帮助你

get_option( 'my-checkbox', 'default' );