如何检查是否设置了定制器设置?

时间:2019-02-12 作者:Sekhemty

我正在尝试设置一个函数,将meta标记写入我的站点标题。

也就是说,我设置了如下颜色选择器输入:

function customizer_options($wp_customize) {

    $wp_customize -> add_setting ( \'chrome_theme\', array( \'default\' => \'\' ) );
    $wp_customize -> add_control ( new WP_Customize_Color_Control ( $wp_customize, \'chrome_theme\', array(
        \'label\' => __(\'Chrome theme color\', \'base-theme\'),
        \'description\' => __(\'Tab color in Chrome for Android\', \'base-theme\'),
        \'section\' => \'title_tagline\',
        \'settings\' => \'chrome_theme\',
    )));

add_action( \'customize_register\', \'customizer_options\' );
然后,我打印meta 标记到我的页面<head> 使用此功能:

function chrome_theme_meta() {

echo \'<meta name="theme-color" content="\', get_theme_mod( \'chrome_theme\', \'\' ), \'">\';

}

add_action(\'wp_head\', \'chrome_theme_meta\');
除了打印meta 当没有设置值时也要标记,我想防止出现这种情况。

如何检查chrome_theme 设置已设置(因此,不为空),并启动chrome_theme_meta 如果这是真的?

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

添加操作将触发函数,但您可以添加if语句来查看值是否已设置。这样,如果未设置值,标记将不会激发

function chrome_theme_meta() {
$chrome_theme = get_theme_mod( \'chrome_theme\', \'\' );
  if(!empty($chrome_theme){//test to see if a value is set
    echo \'<meta name="theme-color" content="\', get_theme_mod( \'chrome_theme\', \'\' ), \'">\';
  }
}
add_action(\'wp_head\', \'chrome_theme_meta\');
或者,第二个(空)参数get_theme_mod( \'chrome_theme\', \'\' ) 是回退,因此,如果尚未设置该设置,则可以指定默认值。