Произвольные типы записей в WordPress продолжают набирать обороты и сегодня это уже неотъемлемый атрибут в каждом втором сайте на WordPress. Поговаривают даже что, этот виток развития способен создать серьезную конкуренцию такой крутой CMS как Drupal. Но мы то знаем, что это черный пиар и то, что умеет Drupal, WordPress'у пока только снится. Имею ввиду производительность.
Так вот, создавать произвольные типы записей мы уже умеем и даже умеем создавать таксономии и прикручивать их к произвольным типам записей, а как выводить статистику всего этого созданного в консоли WordPress в виджете "Прямо сейчас", пока не знаем. Если знаете, то дальше можете не читать.
Давайте заполним этот пробел в знаниях и дополним виджет "Прямо сейчас" прямо сейчас
Для этого вставим в functions.php код:
/* Добавляем количество записей всех типов записей в виджет консоли "Прямо сейчас" */
add_action( 'right_now_content_table_end' , 'add_right_now_info' );
function add_right_now_info() {
$args = array( 'public' => true, '_builtin' => false );
$output = 'object';
$operator = 'and';
$post_types = get_post_types( $args, $output, $operator );
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 ) );
if ( current_user_can( 'edit_posts' ) ) {
$num = "<a href='edit.php?post_type=$post_type->name'>$num</a>";
$text = "<a href='edit.php?post_type=$post_type->name'>$text</a>";
}
echo '<tr><td class="first b b-' . $post_type->name . '">' . $num . '</td>';
echo '<td class="t ' . $post_type->name . '">' . $text . '</td></tr>';
}
// сюда вставляем код для таксономий, если нужно
}
Если нужно добавить еще и таксономии, то дописываем вниз функции (я в коде выделил) аналогичный код, только для таксономий:
// добавляем таксономии
$taxonomies = get_taxonomies( $args , $output , $operator );
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 ) );
if ( current_user_can( 'manage_categories' ) ) {
$num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>";
$text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>";
}
echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>';
echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>';
}
После того как мы вставим этот код у нас получится примерно такая картина:

Объяснять как и что работает пожалуй не буду, кому нужно разберутся, кто не может разобраться — ставьте плагин, упомянутый ниже. Давайте я лучше приведу еще один код, который показывает как добавить в этот "Прямо сейчас" блок информацию о количестве зарегистрированных пользователей:
/* Добавляем количество пользователей в Консоль в виджет "Прямо сейчас" */
add_action( 'right_now_content_table_end', 'dashboard_wps_user_count');
function dashboard_wps_user_count() {
global $wpdb;
$users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");
?>
<table>
<tbody>
<tr class="first">
<td class="first b b_pages"><a href="users.php"><? echo $users; ?></a></td>
<td class="t pages"><a href="users.php">Members</a></td>
</tr>
</tbody>
</table>
<?}
Здесь мы использовали тот же самый фильтр right_now_content_table_end, который позволяет добавлять данные в конец левой колонки. Но помимо этого фильтра можно использовать и другие:
- right_now_content_table_end — конец левой колонки (текст). Этот фильтр использовался в примерах выше;
- right_now_discussion_table_end — конец правой колонки (Discussion);
- rightnow_end — конец виджета (место где написано: you are using WordPress3.2).
Плагин для улучшения виджета "Прямо сейчас"
Пока писал статью наткнулся на плагин для комплексного изменения виджета "Прямо сейчас" в консоли, назвается он: Right Now Reloaded. Смотрите как он изменяет видежет:

Надо признать, плагин хорош! И я его даже поспешно установил на один из блогов. А понравился он мне потому, что он не имеет никаких настроек, никак не проявляет себя в админке, ничего никуда не сохраняет и вообще, безобидный как червяк. Его в любое время можно удалить и не переживать что он что-то там оставил после себя.
Работает он по принципу: удаляет стандартный виджет и создает новый, взамен удаленному, сохраняя при этом совместимость с плагинами, которые могут использовать блок "Прямо сейчас" в своих целях.
Скачать Right Now Reloaded из репозитории плагинов WordPress.
Салаты незаменимый элемент вкусной трапезы, ведь именно салаты дополняют главное блюдо экзотическим вкусом. Вкусные салаты с фото можно посмотреть на сайте recepti.tv, там же можете ознакомится с рецептом приготовления и приготовить салат который вы еще не пробовали.
- Предыдущие по меткам
- Предыдущие записи
- 12 приемов с админкой WordPress (сайт для клиента) ← 1.Сен.2011 // 47
- Настраиваем robots.txt для WordPress ← 29.Июл.2011 // 33
- 20+ полезных SQL запросов для WordPress ← 14 Сентябрь 2011 // 12
- 12 приемов с админкой WordPress (сайт для клиента) ← 1 Сентябрь 2011 // 47
- Настраиваем robots.txt для WordPress ← 29 Июль 2011 // 33

У вас очень интересный блог и полезные статьи, есть чему поучиться, буду Вашим постоянным посетителем.
Немного отклоняюсь от темы, но в пределах названия )) Сталкивались ли Вы с произвольными полями для таксономий? В частности - добавление изображения (не дедовским способом в виде http://..../..../id_таксономии.img), а именно с вызовом media-upload.php. Нашел несколько плагинов, ultimate-taxonomy-manager и taxonomy-meta-1.0, но последний, к сожалению не запустился, а ultimate-taxonomy-manager только при активации уже кушает 20 запросов к б.д. (но решает все задачи). Если есть возможность, натолкните на более легкое решение, т.к. не очень хочется перегружать сайт плагинами и черезмерно увеличивать нагрузку.
Благодарен.
К сожалению, не знаю решения такой задачи, ничем помочь не могу.
Артем, попробуй taxonomy-images. Автор даже скринкаст сделал по установке-настройке.
А можно ли добавить таксономий к рубрикам? тот же title?