web-dev-qa-db-ja.com

カスタマイザの表示/非表示

私のカスタマイザには、「タイトルを表示する」というチェックボックスがあります。デフォルトでタイトルを表示したいのですが(これはカスタマイザにあります)、ライブサイトに表示するにはカスタマイザ設定を保存する必要があります。最初に設定を保存しなくても表示したいのですが。

これが私のテンプレートファイルにあるコードです:

<?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 } ?>

これは私のcustomizer.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') { ?>
1
Troy Templeman

get_theme_mod()には2番目のパラメータがあり、ここでデフォルト値、オプションが設定されていない場合に使用する値を設定できます。

したがって、デフォルト値が"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' ) ) {
}
3
cybmeta

@cybmetaの助けを借りて、デフォルト値を追加することでそれを修正しました。ありがとうございます。

<?php if( get_theme_mod( 'display_header_image_title' , '1' ) == '1') { ?>
0
Troy Templeman