Ajouter les compteurs de contenu dans le tableau de bord de WordPress

Le widget « D’un coup d’oeil » sous WordPress 3.8 liste et comptabilise l’ensemble des contenus présents dans votre back-office. Par défaut, il n’intègre que les pages et les articles. Il est pourtant simple d’y rajouter les types de contenu et les taxonomies personnalisés.

Pour vous donner une idée du résultat, voici une capture d’écran avec la vue par défaut :

Widget "D'un coup d'oeil" par défaut sous WordPress

Et une second avec les différents contenus propres au projet :

wordpress-coup-oeil-dashboard-2

Le bout de code PHP a copier / coller dans votre plugin de fonctions globales ou dans votre thème est le suivant :

/* Widget 'Coup d'oeil' avec tous les contenus */
function ntp_right_now_content_table_end() {
    $args = array(
        'public' => true ,
        '_builtin' => false
    );
    $output = 'objects';
    $operator = 'and';
    $post_types = get_post_types($args , $output , $operator);
    foreach($post_types as $post_type) {
        $num_posts = wp_count_posts($post_type->name);
        $num = number_format_i18n($num_posts->publish);
        $text = _n($post_type->labels->name, $post_type->labels->name , intval($num_posts->publish));
        if (current_user_can('edit_posts')) {
            $cpt_name = $post_type->name;
        }
        echo '<li><tr><a class="'.$cpt_name.'" href="edit.php?post_type='.$cpt_name.'"><td></td>' . $num . '&nbsp;<td>' . $text . '</td></a></tr></li>';
    }
    $taxonomies = get_taxonomies($args , $output , $operator);
    foreach($taxonomies as $taxonomy) {
        $num_terms  = wp_count_terms($taxonomy->name);
        $num = number_format_i18n($num_terms);
        $text = _n($taxonomy->labels->name, $taxonomy->labels->name , intval($num_terms));
        if (current_user_can('manage_categories')) {
            $cpt_tax = $taxonomy->name;
        }
        echo '<li><tr><a class="'.$cpt_tax.'" href="edit-tags.php?taxonomy='.$cpt_tax.'"><td></td>' . $num . '&nbsp;<td>' . $text . '</td></a></tr></li>';
    }
}
add_action('dashboard_glance_items', 'ntp_right_now_content_table_end');

Greg de Screenfeed nous donne un bout de code alternatif tout aussi fonctionnel avec en supplément le moyen de personnaliser l’icône du contenu – en lieu et place du rond par défaut. J’en ai d’ailleurs profité pour adapter les lignes de code ci-dessus pour rajouter la classe des custom post types et des custom taxonomies. Merci à lui !

Bien entendu, une telle astuce repose entièrement sur l’utilisation des dashicons… vous savez la nouvelle police d’icône vectorisée pour WordPress.

Crédits photo : Laurent Dubois

8 commentaires

  1. Mike

    Bonjour, je tombe sur vos articles comme souvent par le tableau de bord de mon installation WordPress, beaucoup de gens doivent faire de même. Le contenu est souvent intéressant mais la méthode ou plutôt l’absence de méthode consistant à balancer une fonction dans functions.php plus un appel qui n’est pas isolé dans un des temps d’initialisation de wordpress ce n’est quand même pas une bonne pratique. Pourquoi ne pas formuler sous la forme d’un plugin, réutilisable, qui encapsule le code dans sa propre entité ou à la limite proposer une bibliothèque de fonctions téléchargeables ?
    Encourager les gens à « hacker » vite fait le functions.php est une mauvaise idée pour toute chose qui n’est pas lié au graphisme : vous changez de thème vous perdez la fonctionnalité, vous faites un nouveau site, vous allez perdre du temps à copier des bouts de code de votre ancien functions.php.
    Vous bénéficiez d’une visibilité énorme dans de la communauté française, bien sûr rien ne vous y oblige mais c’est dommage de ne pas en profiter pour encourager les bonnes pratiques qui bénéficient à tous, même si je vous l’accorde, les articles deviennent plus longs à écrire.
    Cordialement,

    Mike

    1. Aurélien Denis auteur de l’article

      Bonjour Mike, je te remercie de ta remarque pertinente.

      Comme tu as pu le lire dans ce tutoriel, je préconise la méthode de création d’un mu-plugin parfaitement adapté pour ce type de situation.

      Seulement voila, beaucoup de gens rencontre des difficultés pour saisir la portée de tout cela. Bien souvent, la modification du fichier functions.php est la solution la plus simple pour le plus grand nombre. La plupart du temps je précise également qu’il vaut mieux créer un mu-plugin et passer par un client FTP.

      Il va de soi que les astuces présentées sont parfois techniques – comme celle-ci, et plutôt réservées à des utilisateurs avancés.

      Les développeurs quand à eux disposent généralement déjà d’une méthode qui leur est propre pour intégrer le code et ne soucie que… du code justement.

      Et oui, j’ai conscience de la responsabilité qui m’incombe de partager de bonnes pratiques… ce que je m’efforce de faire au quotidien aussi bien dans mes articles, que par les nombreuses réponses aux commentaires et autres mails.

Laisser un commentaire

Thèmes & Plugins
Premium By WP Channel

WP Alacarte propose des produits et services de qualité
made in France pour la plateforme WordPress.

Tout est prêt pour créer votre site à la carte !

  • Thèmes et extensions premium
  • Facilité d’utilisation garantie
  • Temps de chargement optimisé
  • Personnalisation avancée
Découvrir

Rejoignez la communauté WordPress !

Faites partie de l’aventure en devenant membre d’une association WordPress. Conférences, ateliers, BarCamp, WordCamp… Venez
partager votre passion pour WordPress !

Aurélien DENIS,
président des associations WordPress Francophone et WPMX