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

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

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

Очень жаль, что в 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

Источник: misha.blog

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

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: