WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Типы записей и таксономии в виджете «На виду» («Прямо сейчас») в консоли

Произвольные типы записей в WordPress продолжают набирать обороты и сегодня это уже неотъемлемый атрибут в каждом втором сайте на WordPress. Поговаривают даже что, этот виток развития способен создать серьезную конкуренцию такой крутой CMS, как Drupal. Но мы то с вами знаем...

Так вот, создавать произвольные типы записей мы уже умеем и даже умеем создавать таксономии и прикручивать их к произвольным типам записей, а как выводить статистику всего этого созданного в консоли WordPress в виджете "Прямо сейчас", пока не знаем.

Надо исправить сей пробел в знаниях и дополнить виджет "Прямо сейчас" прямо сейчас. Для этого вставим в functions.php такой код:

## Добавляем все типы записей в виджет "Прямо сейчас" в консоли
add_action( 'dashboard_glance_items' , 'add_right_now_info' );
function add_right_now_info( $items ){

	if( ! current_user_can('edit_posts') ) return $items; // выходим

	// типы записей
	$args = array( 'public' => true, '_builtin' => false );

	$post_types = get_post_types( $args, 'object', 'and' );

	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->singular_name, $post_type->labels->name, intval( $num_posts->publish ) );

		$items[] = "<a href=\"edit.php?post_type=$post_type->name\">$num $text</a>";
	}

	// таксономии
	$taxonomies = get_taxonomies( $args, 'object', 'and' );

	foreach( $taxonomies as $taxonomy ){
		$num_terms = wp_count_terms( $taxonomy->name );
		$num       = number_format_i18n( $num_terms );
		$text      = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms ) );

		$items[] = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num $text</a>";
	}

	// пользователи
	global $wpdb;

	$num  = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");
	$text = _n( 'User', 'Users', $num );

	$items[] = "<a href='users.php'>$num $text</a>";

	return $items;
}

После того как мы вставим этот код у нас получится примерно такая картина:

Виджет На виду

Объяснять как и что работает пожалуй не буду, кому нужно разберутся, кто не может разобраться — ставьте плагин, упомянутый ниже.

Еще фильтры, которые можно использовать в виджете «На виду» в консоли.

Плагин для улучшения виджета "Прямо сейчас"

Пока писал статью наткнулся на плагин для комплексного изменения виджета "Прямо сейчас" в консоли, называется он: Right Now Reloaded.

Плагин хорош! И я его даже поспешно установил на один из блогов. Понравился он мне потому, что он не имеет никаких настроек, никак не проявляет себя в админке, ничего никуда не сохраняет и вообще, безобидный как червяк, за исключением нагрузки при генерации соответствующей страницы в админке, но это уже, как говорится, издержки производства, тут ничего не сделаешь. Его в любое время можно удалить и не переживать, что после него остался мусор.

Работает он по принципу: удаляет стандартный виджет и создает новый, взамен, сохраняя при этом совместимость с плагинами, которые могут использовать блок "Прямо сейчас" в своих целях.

14 комментов