このコードを使用して、テーマカスタマイザに2番目の背景画像関数を追加しようとしています。
// HTML Background Image
$wp_customize->add_setting(
'html_background_image',
array(
'capability' => 'edit_theme_options',
));
$wp_customize->add_control(
new WP_Customize_Background_Image_Control(
$wp_customize,
'background_image',
array(
'label' => __('HTML Background Image', 'TEXTDOMAIN'),
'section' => 'background_image',
'settings' => 'html_background_image',
)));
しかし、うまくいきません。私はここに何かが足りないのですか?
このクラスに関する文書はほとんどありませんが、以下はWordPress core からの完全な例です(これは github です)。コアクラスのように$wp_customize
ではなく、custom_register
コールバックの引数として取得した$this
オブジェクトを使用することに注意してください。私は検索をして、以下を置き換えます、そして、それは働きます。
/* CORE COPY PASTE */
//https://github.com/WordPress/WordPress/blob/master/wp-includes/class-wp-customize-manager.php#L808
/* Custom Background */
$wp_customize->add_section( 'background_image', array(
'title' => __( 'Background Image' ),
'theme_supports' => 'custom-background',
'priority' => 80,
) );
$wp_customize->add_setting( 'background_image', array(
'default' => get_theme_support( 'custom-background', 'default-image' ),
'theme_supports' => 'custom-background',
) );
$wp_customize->add_setting( new WP_Customize_Background_Image_Setting( $wp_customize, 'background_image_thumb', array(
'theme_supports' => 'custom-background',
) ) );
$wp_customize->add_control( new WP_Customize_Background_Image_Control( $wp_customize ) );
$wp_customize->add_setting( 'background_repeat', array(
'default' => 'repeat',
'theme_supports' => 'custom-background',
) );
$wp_customize->add_control( 'background_repeat', array(
'label' => __( 'Background Repeat' ),
'section' => 'background_image',
'type' => 'radio',
'choices' => array(
'no-repeat' => __('No Repeat'),
'repeat' => __('Tile'),
'repeat-x' => __('Tile Horizontally'),
'repeat-y' => __('Tile Vertically'),
),
) );
$wp_customize->add_setting( 'background_position_x', array(
'default' => 'left',
'theme_supports' => 'custom-background',
) );
$wp_customize->add_control( 'background_position_x', array(
'label' => __( 'Background Position' ),
'section' => 'background_image',
'type' => 'radio',
'choices' => array(
'left' => __('Left'),
'center' => __('Center'),
'right' => __('Right'),
),
) );
$wp_customize->add_setting( 'background_attachment', array(
'default' => 'fixed',
'theme_supports' => 'custom-background',
) );
$wp_customize->add_control( 'background_attachment', array(
'label' => __( 'Background Attachment' ),
'section' => 'background_image',
'type' => 'radio',
'choices' => array(
'fixed' => __('Fixed'),
'scroll' => __('Scroll'),
),
) );
カスタマイズできないようです。そして、証拠として、 WP_Customize_Image_Control への3番目の引数については、このコードを調べてください。