次のコードを使用してテーマの Custom_Headers サポートを有効にすると、[サイトID]セクションの[サイトのタイトルとタグラインを表示する]チェックボックスと[色]セクションの[ヘッダーテキストの色]コントロール表示されます:
/**
* Set up the WordPress core custom header feature.
*/
function theme_custom_header_setup() {
add_theme_support( 'custom-header', array(
// Default arguments
) );
}
add_action( 'after_setup_theme', 'theme_custom_header_setup' );
私の質問は、どのように私は別の "サイトのタイトルとタグラインを表示する"チェックボックス、 "ヘッダーテキストの色"設定とリストされたのと同じ機能を持つコントロールを作成することができますか?
2つのコントロールを持つ1つの設定を作成しようとしましたが、うまくいかないようです。
function theme_customize_register( $wp_customize ) {
$wp_customize->add_setting( 'tagline_textcolor', array(
'transport' => 'postMessage',
) );
$wp_customize->add_control( 'tagline_textcolor', array(
'type' => 'checkbox',
'section' => 'title_tagline',
'label' => __( 'Display Tagline Text', 'theme_name' ),
) );
$wp_customize->add_control(
new WP_Customize_Color_Control(
$wp_customize,
'tagline_textcolor',
array(
'label' => __( 'Tagline Text Color', 'theme_name' ),
'section' => 'title_tagline',
)
)
);
}
add_action( 'customize_register', 'theme_customize_register' );
これを手伝ってもらえますか、それとも私に正しい考えを教えてください。
設定とコントロールがclass-wp-customize-manager.php
に表示されているとおりに正確に追加された場合、wp-admin/custom-header.php
のJQueryスクリプトはヘッダーテキストのカラーコントロールを適切に切り替えます。 theme_supports
行は「テーマが特定の機能のサポートを欠いている場合に設定を隠すために使用される」ため、コメントアウトまたは削除する必要があります。[ 1 ]
add_action( 'customize_register', function ( $wp_customize ) {
$wp_customize->add_setting( 'header_textcolor', array(
// 'theme_supports' => array( 'custom-header', 'header-text' ),
'default' => get_theme_support( 'custom-header', 'default-text-color' ),
'sanitize_callback' => array( $wp_customize, '_sanitize_header_textcolor' ),
'sanitize_js_callback' => 'maybe_hash_hex_color',
) );
$wp_customize->add_control( 'display_header_text', array(
'settings' => 'header_textcolor',
'label' => __( 'Display Site Title and Tagline' ),
'section' => 'title_tagline',
'type' => 'checkbox',
'priority' => 40,
) );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'header_textcolor', array(
'label' => __( 'Header Text Color' ),
'section' => 'colors',
) ) );
});