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