允许在主题定制器的单个选项中存储多个设置

时间:2017-03-29 作者:beginner

他们说:“我在读wordpress主题手册。”

 $wp_customize->add_setting( \'myplugin_options[color]\', array(
\'type\' => \'option\',
\'capability\' => \'manage_options\',
\'default\' => \'#ff2525\',
\'sanitize_callback\' => \'sanitize_hex_color\',
) );
请注意,对于使用选项类型的设置,自定义程序可以处理存储为关键帧阵列的选项。这允许多个设置存储在一个不是主题模式的选项中。要检索和使用自定义程序选项的值,请使用get\\u theme\\u mod()和get\\u option(),设置id为:

我试过了。

 $wp_customize->add_setting(\'options[toggle_hedaer]\',array(\'default\'=>true,\'type\'=>\'option\',\'capability\' => \'manage_options\',\'transport\' => \'postMessage\'));
 $wp_customize->add_control(\'options[toggle_header]\',array(\'section\' => \'live_options\',\'label\'=>\'Display header?\',\'type\'=>\'checkbox\'));
 $wp_customize->add_setting(\'options[background]\',array(\'default\' => \'normal\',\'type\'=>\'option\',\'capability\'=>\'manage_options\',\'transport\' => \'postMessage\'));
 $wp_customize->add_control(\'options[background]\',array(\'section\'=>\'live_options\',\'label\'=> \'Change Background\',\'type\'=>\'radio\',\'choices\'=>array(\'normal\'=>\'Normal\',\'inverse\'=>\'Inverse\') ));
但它并没有在数据库中创建任何选项,有人能解释一下我做错了什么吗?在单个选项中存储多个设置的正确方法是什么?

1 个回复
最合适的回答,由SO网友:Weston Ruter 整理而成

在这里的示例中,存储的选项将命名为options 它将包含两个数组键,toggle_headerbackground. 要获得这些值,您需要执行以下操作:

$options = get_option( \'options\', array() );
$options = array_merge( array( \'toggle_hedaer\' => true, \'background\' => \'normal\' ), $options );

// Accessing stored values here:
$toggle_header = $options[\'toggle_hedaer\'];
$background = $options[\'background\'];
当然,您应该为设置选择一个不同的ID基“options”.

相关推荐