« D’un coup d’œil » (At a glance) est le remplaçant du widget « Aujourd’hui » sur le tableau de bord. Il y avait une méthode pour ajouter des CPT à ce widget, qui ne marche plus depuis la mise à jour. Tout le monde a déjà montré sa méthode pour palier ce petit désagrément, sauf moi… voici donc ma solution :p
***POUF***
EDIT 24/09/2014 :
Avec cette nouvelle version, plus besoin de prévoir le coup lorsque le CPT est créé en ajoutant du css (mon bout de code s’en charge).
010203040506070809101112131415161718192021222324252627282930313233343536
// "At a glance" items (dashboard widget): add the post types.
add_filter( 'dashboard_glance_items', 'sf_glance_post_types_items' );
function sf_glance_post_types_items( $items ) {
$post_types = get_post_types( array( 'public' => true, '_builtin' => false ), 'object' );
$post_types = apply_filters( 'sf_glance_post_types', $post_types );
if ( count( $post_types ) ) {
foreach ( $post_types as $post_type => $object ) {
$num_posts = wp_count_posts( $post_type );
if ( ! $num_posts || ! isset( $num_posts->publish ) ) {
continue;
}
$icon = ! empty( $object->menu_icon ) && strpos( $object->menu_icon, 'dashicons-' ) === 0 ? '<i class="sf-icon dashicons ' . $object->menu_icon . '"></i>' : '';
$class = $icon ? ' hide-icon' : '';
$text = sprintf( _n( '%1$s %2$s', '%1$s %3$s', $num_posts->publish ), number_format_i18n( $num_posts->publish ), $object->labels->singular_name, $object->labels->name );
if ( current_user_can( $object->cap->edit_posts ) ) {
$items[] = sprintf( '<a class="%1$s-count%2$s" href="edit.php?post_type=%1$s">%3$s%4$s</a>', $post_type, $class, $icon, $text );
}
else {
$items[] = sprintf( '<span class="%1$s-count%2$s">%3$s%4$s</span>', $post_type, $class, $icon, $text );
}
}
}
return $items;
}
add_action( 'admin_print_styles-index.php', 'sf_glance_post_types_style' );
function sf_glance_post_types_style() {
echo '<style>#dashboard_right_now li .hide-icon:before {display: none;} #dashboard_right_now li .sf-icon {float:left; margin: 0 5px 0 0; color:#888;}</style>' . "\n";
}
La différence avec la précédente version de ce code, c’est qu’on ne se sert plus du système mis en place par WordPress pour ajouter une icône devant chaque ligne du widget. Au contraire, on va la cacher et ajouter la notre dans une balise <i>
(pour éviter d’utiliser une balise <span>
à cause des règles css déjà en place).
See ya!
Commentaires
Commentaire de Cristophe.
Tous ces efforts (les tiens, ceux des autres) pour si peu de choses. Les codeurs sont vraiment des malades. d:-)
Commentaire de Julio Potier @ BoiteAWeb.
hooooooooooo je viens de mettre à jour ton code en mu-plugins :p merci c’est top et je trouve que dans la déclaration du CPT on devrait avoit un param « dashboard »=> »true » et on l’a. tout simplement.
Commentaire de Crunch.
Merci pour l’astuce, je vais mettre à jour la bidouille que j’avais réalisé en me basant sur un ancien code de WordPress. Cependant, une idée pour une prochaine astuce pourrait être dans l’ajout des CPT pour le menu « Activité » avec le publié récemment et ceux à venir. Enfin, si une astuce existe car je n’ai pas encore trouvé chaussure à mon pied sur le sujet.
Commentaire de Yannick Altuna.
Merci beaucoup Greg pour la mise à jour de l’astuce, j’était vraiment triste de plus voir mes CPT après la mise à jour de wordpress.
Cordialement,
Yannick
Commentaire de Chris.
Merci beaucoup,
Auriez-vous par hasard le même pour le widjet des activités publiées récemment ?
encore merci.
Chris
Commentaire de Grégory Viguier.
Nope, rien pour ce widget.
Comme je n’aime pas celui-là, je n’ai même pas cherché à le modifier… Juste à le virer x)
Commentaire de Aurélien Denis.
Salut !
J’ai trouvé un bout de code différent du tien mais qui me semble un poil plus long… mais ajoute le support des taxonomies personnalisées en plus. Je vais le publier et te citer pour que les gens choisissent celui qui leur plait le plus. :)