web-dev-qa-db-fra.com

Connexion à register_admin_color_schemes

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.

1
klewis

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');
1
Nabil Kadimi

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.

1
CodeMascot