Customizer Show/Hide

时间:2016-11-25 作者:Troy Templeman

在我的自定义程序中,我有一个“显示标题”复选框。我希望标题在默认情况下显示(它位于自定义程序中),但需要保存自定义程序设置,以便在实时网站上显示。我希望它显示出来,而不必先保存设置。

这是我在模板文件中的代码:

<?php if( get_theme_mod( \'display_header_image_title\' ) == \'1\') { ?>
    <h1 id="header-image-title"><?php echo get_theme_mod( \'header_image_title\' , __( \'default text\', \'myTheme\' )); ?></h1>
<?php } ?>
这是我在自定义程序中的代码。php文件:

// Title
$wp_customize->add_setting( \'header_image_title\', array(
    \'default\'           => __(\'Title\',\'myTheme\'),
    \'transport\'         => \'postMessage\'
) );    
$wp_customize->add_control( \'header_image_title\', array(
    \'label\'             => __(\'Title\',\'myTheme\'),
    \'type\'              => \'text\'
) );

// Display Title
$wp_customize->add_setting( \'display_header_image_title\', array(
    \'default\'           => true,
    \'transport\'         => \'postMessage\'
) );
$wp_customize->add_control( \'display_header_image_title\', array(
    \'label\'             => __(\'Display Title\',\'myTheme\'),
    \'type\'              => \'checkbox\'
) );
我怀疑这一行需要在模板文件中编辑:

<?php if( get_theme_mod( \'display_header_image_title\' ) == \'1\') { ?>

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

get_theme_mod() 具有第二个参数,可以在其中设置默认值,即未设置选项时要使用的值。

因此,如果默认值为"1", 您可以使用:

get_theme_mod( \'display_header_image_title\', \'1\' )
那么,如果display_header_image_title (数据库中无值),"1" 已使用。因此,您可以检查精确值:

if( get_theme_mod( \'display_header_image_title\', \'1\' ) === \'1\' ) {
}
或者只是对/错:

if( get_theme_mod( \'display_header_image_title\', \'1\' ) ) {
}

SO网友:Troy Templeman

在@cybmeta的帮助下,添加一个默认值将其修复。谢谢

<?php if( get_theme_mod( \'display_header_image_title\' , \'1\' ) == \'1\') { ?>