Contenu principal
At a glance

Ajouter des types de contenu au nouveau widget « D’un coup d’œil » de WordPress 3.8

« 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***

0102030405060708091011121314151617181920212223
// "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;

			$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" href="edit.php?post_type=%1$s">%2$s</a>', $post_type, $text );
			else
				$items[] = sprintf( '<span class="%1$s-count">%s</span>', $text );
		}
	}
	return $items;
}

A noter que si le développeur du CPT n’a pas prévu le coup, l’icône sera simplement un disque.
Si vous voulez ajouter vous-même une icône il faudra faire quelque chose comme ceci :

12345
add_action( 'admin_head', 'my_cpt_icon_css' );

function my_cpt_icon_css() {
	echo '<style type="text/css">#dashboard_right_now li .MY_CPT-count:before{content:"f316"}</style>'."n";
}

Remplacer MY_CPT par votre CPT (post, page, event…) et f316 par votre caractère d’icône (clic sur une icône puis « Copy CSS »).

See ya!