WordPress : Ajoutez des couleurs à la palette de couleurs existante sans la remplacer
En utiliser add_theme_support( 'editor-color-palette' )
une peut remplacer la palette de couleurs dans l’éditeur Gutenberg par une palette personnalisée :
add_theme_support( 'editor-color-palette', array(
array(
'name' => __( 'Strong magenta', 'themeLangDomain' ),
'slug' => 'strong-magenta',
'color' => '#a156b4',
),
array(
'name' => __( 'Light grayish magenta', 'themeLangDomain' ),
'slug' => 'light-grayish-magenta',
'color' => '#d0a5db',
),
) );
Ma question est la suivante: existe-t-il un moyen d’AJOUTER des couleurs à une palette existante (via un thème enfant, par exemple) sans la remplacer complètement?
Merci d’avance
Solution n°1 trouvée
La meilleure façon serait d’exposer les données, afin qu’elles puissent être modifiées. Vous pouvez le faire en ajoutant un filtre :
add_theme_support( 'editor-color-palette', apply_filters( 'themeLangDomain_editor_color_palette_args', array(
array(
'name' => __( 'Strong magenta', 'themeLangDomain' ),
'slug' => 'strong-magenta',
'color' => '#a156b4',
),
array(
'name' => __( 'Light grayish magenta', 'themeLangDomain' ),
'slug' => 'light-grayish-magenta',
'color' => '#d0a5db',
),
) ) );
Ensuite, les thèmes enfants ou les plugins peuvent modifier le tableau en utilisant add_filter
pour modifier les données dans themeLangDomain_editor_color_palette_arg
:
add_filter( 'themeLangDomain_editor_color_palette_args', function( $palette ) {
$palette[] = array(
'name' => __( 'Black', 'themeLangDomain' ),
'slug' => 'black',
'color' => '#000000',
);
return $palette;
} );
Solution n°2 trouvée
Vous pouvez fusionner des palettes
$existing = get_theme_support( 'editor-color-palette' );
$new = array_merge( $existing[0], array(
array(
'name' => __( 'Strong magenta', 'themeLangDomain' ),
'slug' => 'strong-magenta',
'color' => '#a156b4',
),
array(
'name' => __( 'Light grayish magenta', 'themeLangDomain' ),
'slug' => 'light-grayish-magenta',
'color' => '#d0a5db',
),
));
add_theme_support( 'editor-color-palette', $new);
0 commentaire