私のカスタマイザには、「タイトルを表示する」というチェックボックスがあります。デフォルトでタイトルを表示したいのですが(これはカスタマイザにあります)、ライブサイトに表示するにはカスタマイザ設定を保存する必要があります。最初に設定を保存しなくても表示したいのですが。
これが私のテンプレートファイルにあるコードです:
<?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') { ?>
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' ) ) {
}
@cybmetaの助けを借りて、デフォルト値を追加することでそれを修正しました。ありがとうございます。
<?php if( get_theme_mod( 'display_header_image_title' , '1' ) == '1') { ?>