Injecter du CSS custom pour le Back Office



Il peut être intéressant de pouvoir modifier le style (via du CSS) de votre back office, pour faire ressortir des items de votre immense menu, cacher certains blocs, etc. Je vous propose 2 solutions pour arriver à faire ça, une rapide, une un peu plus propre.

Nous allons utiliser plusieurs fonctions WordPress. Pour commencer, le hook add_action(string $tag, callable $function_to_add, ...), il permet de modifier le fonctionnement de WordPress lorsque des événements précis se déroulent. Le premier paramètre est l'action que l'on veut hooker, le deuxième paramètre le nom de la fonction à appeler pour faire nos modifications. La fonction wp_enqueue_style(string $handle, string $src = '', ...) permet d'ajouter un fichier CSS à la suite.

Le code est à ajouter dans le fichier functions.php de votre thème.

La solution rapide

Cette solution consiste à injecter directement du CSS sur les pages d'administration. Nous allons utiliser le hook add_action() en lui passant 'admin_head' en premier paramètre. Il permet d'injecter notre code dans la balise <head> de la section admin. Ici, le style du corps de la page (body), des cellules de tableau (td), des champs de formulaires (input et select) vont avoir une police différente et une taille différente du reste de la page.

add_action('admin_head', 'my_custom_fonts');

function my_custom_fonts() {
    echo '<style>
        body, td, textarea, input, select {
            font-family: "Lucida Grande";
            font-size: 12px;
        } 
        </style>';
}

Plus proprement

Pour injecter du CSS plus proprement, nous allons créer un fichier CSS à part, et ensuite l'injecter dans les pages d'administration. Tout d'abord, dans votre thème actuel (je vous conseille d'utiliser un thème enfant au passage), vous pouvez créer un dossier css (s'il n'existe pas), puis un fichier admin.css. Nous allons utiliser un autre hook, 'admin_print_styles' (avec une priorité de 11 dans l'affichage mais c'est pas forcément le plus important). Dans la fonction add_css_to_admin(), nous utilisons le hook wp_enqueue_style() qui permet d'ajouter le fichier admin.css à la liste des fichiers CSS de la partie d'administration. La fonction get_template_directory_uri() va récupérer le chemin de thème.

function add_css_to_admin() {
    $admin_handle = 'admin_head';
    $admin_stylesheet = get_template_directory_uri() . '/css/admin.css';
    wp_enqueue_style($admin_handle, $admin_stylesheet);
}
add_action('admin_print_styles', 'add_css_to_admin', 11 );

Tester l’existence d’une table dans votre base de données



    J'étais en train de "créer" un petit plugin, basé sur Hello Dolly, en trois étape. La première, très facile, remplacer les paroles de la chanson par des citations. Une par ligne. Deuxième étape, remplacer la chaîne de caractères utilisée par un fichier texte. Et enfin, passer par une table en base de données. Pour la dernière étape, je me suis posé la question de comment connaître l'existence où non d'une table en base de données, car si la table n'existe, j'utilise la solution du fichier texte.

Code PHP

/**
 * Connaître l'existence d'une table
 */
global $wpdb;
$table_name = $wpdb->prefix . 'hacklo_citations';
$res = $wpdb->get_var("SHOW TABLES LIKE '$table_name'");

if ($res == $table_name) {
   ...
}

ConFoo.ca – Vancouver 2016


Format : Par défaut  -  Par HackLo  -  Publié le Date :  - 

ConFoo Vancouver est une conférence couvrant un large spectre de technologies pour les développeurs web. Retrouvez plus de 100 présentations réalisées par des intervenants de la scène internationale, centrées sur de réelles solutions à destination des développeurs, avec un contenu riche et une expérience unique.