Как изменить количество выводимых комментариев в виджете «Активность»

Каждый раз, когда я захожу в админку, я попадаю на ее главную страницу, на которой находится виджет Активность. То есть, зайдя в админку, я сразу смотрю, не появились ли на блоге новые комментарии, и, если таковые имеются, я нажимаю на символ # и попадаю по прямой ссылке непосредственно на тот комментарий, на который я хочу ответить.

Я всегда так делал, в результате чего очень привык к такому процессу. А что произошло дальше? На сайт стало заходить больше людей, а следовательно, стало появляться больше комментариев, и, когда новых комментариев за раз стало приходить больше пяти, у меня начались неудобства — в итоге для того, чтобы ответить на все комментарии, мне приходилось переходить на страницу со всеми комментариями и выискивать там новые. Одно время я даже немного путался с этим, в результате некоторые комментарии я просто пропустил, оставив без ответа.

Очень жаль, что в WordPress не предусмотрено фильтров, позволяющих изменить количество комментариев в этом виджете, поэтому единственным решением является перерегистрация данного виджета (те, кто уже собрался залезать в код движка — не спешите).

По сути, всё, что нам требуется, это вставить этот код в functions.php текущей темы:

/*
 * Удаляем стандартный виджет Активность
 */
function true_remove_activity_widget() {
	global $wp_meta_boxes;
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
}
add_action('wp_dashboard_setup', 'true_remove_activity_widget' );
 
/*
 * Регистрируем свой виджет
 */
function true_add_activity_widget() {
	wp_add_dashboard_widget('dashboard_activity', 'Activity', 'true_site_activity'); // функция true_site_activity будет выводить содержимое виджета
}
add_action('wp_dashboard_setup', 'true_add_activity_widget' );
 
/*
 * Содержимое нового виджета
 */
function true_site_activity() {
	echo '<div id="activity-widget">';
 
	// посты, запланированные на публикацию (вы можете изменить их параметры отображения либо не отображать совсем)
	$future_posts = wp_dashboard_recent_posts( array(
		'display' => 2,
		'max'     => 5,
		'status'  => 'future',
		'order'   => 'ASC',
		'title'   => __( 'Publishing Soon' ),
		'id'      => 'future-posts',
	) );
 
	// недавно опубликованные посты
	$recent_posts = wp_dashboard_recent_posts( array(
		'display' => 2,
		'max'     => 5,
		'status'  => 'publish',
	        'order'   => 'DESC',
		'title'   => __( 'Recently Published' ),
		'id'      => 'published-posts',
	    ) );
 
	// а вот и комментарии, в параметрах функции указываем количество выводимых комментов
	$recent_comments = wp_dashboard_recent_comments( 10 );
 
	// что следует отображать, если нет ни постов ни комментов
	if ( !$future_posts && !$recent_posts && !$recent_comments ) {
		echo '<div class="no-activity">';
		echo '<p class="smiley"></p>';
 		echo '<p>' . __( 'No activity yet!' ) . '</p>';
 		echo '</div>';
	}
	echo '</div>';
}

Что ещё, кроме изменения количества выводимых комментариев, вы можете сделать, используя данный код:

  • менять местами блоки недавно опубликованных постов, запланированных постов и свежих комментариев,
  • вы также можете изменить количество выводимых постов в блоках с опубликованными и запланированными постами,
  • также в блок «Активность» вы можете добавить и что-то своё, например произвольные типы постов, страницы и т.д.

У себя на блоге я вообще убрал блоки с опубликованными и запланированными постами и оставил только комментарии, вот так:

комментарии в виджете активность в консоли WordPress

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

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

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал