WordPress : Problème avec Customizer : seul le dernier champ affiché dans la section
Je crée deux contrôles de couleur à l’aide du Customizer.
function main_salvio_customizer( $wp_customize ) {
$wp_customize->add_setting( 'page-title-section' , array(
'default' => '#3c93bd',
'transport' => 'postMessage',
) );
$wp_customize->add_setting( 'page-title-section-text-color' , array(
'default' => '#000000',
'transport' => 'postMessage',
) );
$wp_customize->add_section( 'personalize-color-page' , array(
'title' => __( 'Visible Section Name' ),
'priority' => 30,
) );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
'label' => __( 'Page Text Color' ),
'settings' => 'page-title-section-text-color',
'section' => 'personalize-color-page',
) ) );
$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array(
'label' => __( 'Page Title Control' ),
'settings' => 'page-title-section',
'section' => 'personalize-color-page',
) ) );
}
add_action( 'customize_register', 'main_salvio_customizer' );
Le problème est que je ne peux voir que le dernier contrôle ajouté, si vous modifiez l’ordre de couleur du texte de la page et que l’autre a disparu.
Solution n°1 trouvée
WP_Customize_Color_Control
prend 3 paramètres :
/**
* @param WP_Customize_Manager $manager Customizer bootstrap instance.
* @param string $id Control ID.
* @param array $args Optional. Arguments to override class property defaults.
*/
Le problème avec le code d’origine est que vous avez transmis le même ID de contrôle ( link_color
) à deux instances distinctes. Ainsi, le contrôle le plus récemment ajouté piétine le précédent avec le même ID de contrôle. Assurez-vous de donner à vos contrôles des identifiants uniques.
Voici le code révisé avec des ID de contrôle uniques pour chaque contrôle de couleur :
add_action( 'customize_register', 'main_salvio_customizer' );
function main_salvio_customizer( $wp_customize ) {
$wp_customize->add_section( 'personalize-color-page', array(
'title' => __( 'Visible Section Name', 'text-domain' ),
'priority' => 30,
) );
$wp_customize->add_setting( 'page-title-section', array(
'default' => '#3c93bd',
'transport' => 'postMessage',
) );
$wp_customize->add_setting( 'page-title-section-text-color' , array(
'default' => '#000000',
'transport' => 'postMessage',
) );
// Control ID page_text_color
$wp_customize->add_control(
new WP_Customize_Color_Control( $wp_customize, 'page_text_color', array(
'label' => __( 'Page Text Color', 'text-domain' ),
'settings' => 'page-title-section-text-color',
'section' => 'personalize-color-page',
) )
);
// Control ID page_title_color
$wp_customize->add_control(
new WP_Customize_Color_Control( $wp_customize, 'page_title_color', array(
'label' => __( 'Page Title Control', 'text-domain' ),
'settings' => 'page-title-section',
'section' => 'personalize-color-page',
) )
);
}
0 commentaire