我在主题定制器中设置了复选框控件,以在选中/取消选中徽标和网站标题时显示/隐藏它们。默认情况下,我希望显示徽标并隐藏网站标题。
除选中复选框时网站标题不会显示在实时预览中外,所有内容都正常工作,除非先将设置保存在自定义程序中。但是,默认情况下会显示徽标,如果取消选中,则会消失。这让我相信站点标题的javascript和/或if语句存在问题。
这是我在模板文件中的代码:
<?php if( get_theme_mod( \'display_logo\' , \'1\' ) == \'1\') { ?>
<?php if ( function_exists( \'the_custom_logo\' ) && has_custom_logo() ) : ?>
<?php the_custom_logo(); ?>
<?php else : ?>
<h1 class="site-logo"><a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home" title="<?php bloginfo( \'name\' ); ?> - <?php bloginfo( \'description\' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( \'name\' ); ?> - <?php bloginfo( \'description\' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>
<?php } ?>
<?php if( get_theme_mod( \'display_site_title\' , \'0\' ) == \'1\') { ?>
<?php if ( is_front_page() && is_home() ) : ?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home"><?php bloginfo( \'name\' ); ?></a></h1>
<?php else : ?>
<p class="site-title"><a href="<?php echo esc_url( home_url( \'/\' ) ); ?>" rel="home"><?php bloginfo( \'name\' ); ?></a></p>
<?php endif; ?>
<?php } ?>
这是我在自定义程序中的代码。php文件:
// Display Logo
$wp_customize->add_setting( \'display_logo\', array(
\'default\' => true,
\'transport\' => \'postMessage\'
) );
$wp_customize->add_control( \'display_logo\', array(
\'label\' => __( \'Display Logo\', \'myTheme\' ),
\'type\' => \'checkbox\'
) );
// Display Site Title
$wp_customize->add_setting( \'display_site_title\', array(
\'default\' => false,
\'transport\' => \'postMessage\'
) );
$wp_customize->add_control( \'display_site_title\', array(
\'label\' => __( \'Display Site Title\', \'myTheme\' ),
\'type\' => \'checkbox\'
) );
这是我在相应的定制器中拥有的代码。js文件:
// Display Logo
wp.customize( \'display_logo\', function( value ) {
value.bind( function( to ) {
if ( true === to ) {
$( \'.site-logo\' ).removeClass( \'hidden\' );
} else {
$( \'.site-logo\' ).addClass( \'hidden\' );
}
});
});
// Display Site Title
wp.customize( \'display_site_title\', function( value ) {
value.bind( function( to ) {
if ( true === to ) {
$( \'.site-title\' ).removeClass( \'hidden\' );
} else {
$( \'.site-title\' ).addClass( \'hidden\' );
}
});
});