J'utilise WordPress 4.6.1, est-il possible pour nous de nous connecter à function register_admin_color_schemes()
situé dans wp-includes/general-template.php
? De cette façon, nous pouvons envoyer ou concaténer ou lier le code suivant à cette fonction:
wp_admin_css_color( 'ffa', _x( 'My Custom Color Combo', 'admin color scheme' ),
admin_url( "/my-plugin=directory/css/colors/my-custom-color-combo/colors$suffix.css" ),
array( '#ffffff', '#ffcd00', '#c7a589', '#9ea476' ),
array( 'base' => '#f3f2f1', 'focus' => '#fff', 'current' => '#fff' )
);
Si possible, comment pouvons-nous le faire de manière dynamique?
Pour votre information, je vois que je peux modifier manuellement le fichier general-template.php
, mais je devrais le faire chaque fois que je mets à jour WordPress.
Non, vous ne pouvez pas vous connecter à cette fonction car il n'y a pas de do_action
ni de apply_filters
, la fonction elle-même crochets à admin_init
. Donc, si votre objectif est d’ajouter de nouveaux jeux de couleurs, vous devez raccorder votre code de la même manière. Ainsi, en utilisant votre exemple, le code requis ressemblerait à ceci:
// Define the function that registers the color schemes.
function wpse244982_register_admin_color_schemes() {
wp_admin_css_color( 'ffa', _x( 'My Custom Color Combo', 'admin color scheme' ),
admin_url( "/my-plugin=directory/css/colors/my-custom-color-combo/colors$suffix.css" ),
array( '#ffffff', '#ffcd00', '#c7a589', '#9ea476' ),
array( 'base' => '#f3f2f1', 'focus' => '#fff', 'current' => '#fff' )
);
// Maybe more colors schemes here
// wp_admin_css_color(...);
// wp_admin_css_color(...);
}
// Hook it to admin_init as WordPress does
add_action( 'admin_init', 'wpse244982_register_admin_color_schemes');
Pour autant que j'ai compris votre question, vous avez besoin d'un moyen de passer des paramètres et d'ajouter plusieurs couleurs, n'est-ce pas? Dans ce cas, vous pouvez appeler la fonction plusieurs fois ou écrire votre propre fonction comme ci-dessous.
function the_dramatist_admin_css_color( $args ) {
wp_admin_css_color( $args['key'], $args['name'], admin_url( $args['url'] ), $args['color'], $args['last_el'] );
}
Et appelez-le en passant votre paramètre comme ci-dessous-
$args = array(
'key' => 'ffa',
'name' => _x( 'My Custom Color Combo', 'admin color scheme' ),
'url' => '/my-plugin=directory/css/colors/my-custom-color-combo/colors.css',
'color' => array( '#ffffff', '#ffcd00', '#c7a589', '#9ea476' ),
'last_el' => array( 'base' => '#f3f2f1', 'focus' => '#fff', 'current' => '#fff' )
);
// Then call the function
the_dramatist_admin_css_color($args);
J'espère que cela pourra aider.