Консоль WordPress содержит очень полезный виджет, который отображает некоторую краткую информацию о вашем сайте и называется он «Прямо сейчас». По-умолчанию он отображает ваше количество записей, страниц и комментариев на сайте, позволяя кликнуть по этим ссылкам для возможности редактирования, если у вас есть соответствующие права.
При разработке плагина для произвольного типа записи, часто может оказаться хорошей идеей добавить ваш тип записи в этот виджет, что позволит сделать информацию более доступной и в общем более дружелюбной для всех. Использование нижеприведенного сниппета вы сможете добавить любое количество произвольных типов записей в этот виджет. Все, что нужно сделать, это заменить массив $post_types на массив того типа записи, который нужно добавить в виджет. Вы также сможете заметить, что в сниппете зашита проверка для того, чтобы только пользователи с правами редактирования каждого типа записи смогут кликнуть на них и т.д.
После того, как вы добавили типы записей в виджет, у них появится дефолтная круглая иконка сразу возле них, но ее можно с легкостью сменить на любую из dashicon, доступных в MP6 and WordPress 3.8+. Все это потребует некоторых правок CSS. CSS, представленный здесь заменит круг на такую же иконку, как и у записей. Свою же можно выбрать из этого набора иконок, просто выберите иконку и скопируйте соответствующий код, полученный по ссылке выше.
add_filter( 'dashboard_glance_items', 'custom_glance_items', 10, 1 ); function custom_glance_items( $items = array() ) { $post_types = array( 'post_type_1', 'post_type_2' ); foreach( $post_types as $type ) { if( ! post_type_exists( $type ) ) continue; $num_posts = wp_count_posts( $type ); if( $num_posts ) { $published = intval( $num_posts->publish ); $post_type = get_post_type_object( $type ); $text = _n( '%s ' . $post_type->labels->singular_name, '%s ' . $post_type->labels->name, $published, 'your_textdomain' ); $text = sprintf( $text, number_format_i18n( $published ) ); if ( current_user_can( $post_type->cap->edit_posts ) ) { $items[] = sprintf( '%2$s', $type, $text ) . "\n"; } else { $items[] = sprintf( '%2$s', $type, $text ) . "\n"; } } } return $items; }
Код для иконки в виджете:
#dashboard_right_now a.post_type-count:before, #dashboard_right_now span.post_type-count:before { content: "\f109"; }
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.