Как вывести количество комментариев рядом ником комментатора

Как вывести количество комментариев рядом ником комментатора | n-wp.ru

Чтобы посетители могли оценить активность разных комментаторов, можно выводить рядом с именем комментатора и количество написанных им комментариев. Я сделал это без плагинов.

Как вывести количество комментариев рядом ником комментатора

Про вывод количества комментариев рядом с именем комментатора я уже писал. Сейчас же хочу привести способ, который выводит количество комментариев в правильном русском склонении: 1 комментарий, 2 комментария, 6 комментариев, 21 комментарий.

Откройте файл functions.php, и добавьте в него:

function comment_count(){
   global $_comments_array, $comment;
   if(empty($comment->comment_author_email)) return;
   if(!isset($_comments_array)){
      global $wpdb;
      $tmp = $wpdb->get_results("SELECT P.comment_author_email, COUNT(*) 
                                 FROM wp_comments P
                                 WHERE P.comment_author_email IN (SELECT DISTINCT P2.comment_author_email 
                                                                  FROM wp_comments P2
                                                                  WHERE P2.comment_post_ID=".$comment->comment_post_ID." 
                                                                  ) 
                                 GROUP BY P.comment_author_email", ARRAY_N);
      $_comments_array = array();
      $a = array('комментарий','комментария','комментариев');
      $i = array (2, 0, 1, 1, 1, 2);
      foreach($tmp as $t){
         $num = (int)$t[1];
         $_comments_array[$t[0]] = $num.' '.$a[($num%100>4 && $num%100comment_author_email, $_comments_array)){
      echo $_comments_array[$comment->comment_author_email];
   }
}

Эта функция подсчитывает количество комментариев, оставленных комментатором в блоге, ориентируясь на его электронный адрес. Чтобы вывести результат подсчета, нужно в шаблон комментариев (обычно это comments.php) добавить:


Этот код нужно вставить сразу после кода, выводящего имя комментатора. Обычно имя комментатора выводится с помощью функции <

 inline="yes">

.

При подготовке этого материала мне помогла информация с этой и этой страниц.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

12 Комментарии

      • когда я писал прошлое сообщение – уже проверил что без смены префикса не работает. У меня таблицы не с wp_ начинаются.
        Сначала нашел другой код http://webpeppers.ru/140.html – тот тоже отказался работать. Помогло смена в коде вызова к бд.
        Ну собственно как хотите…

  1. Не выходит… Вставил функцию. Теперь в комменты закинуть

    < ?php comment_count(); ?>

    Но там нету строки

    < ?php comment_author(); ?>

    Вот. Помогите пожалуйста…

    < ?php
    if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
    die ('Please do not load this page directly. Thanks!');
    if ( post_password_required() ) { ?>
    

    Эта запись под паролем. Введите пароль чтобы просмотреть комментарии.

    < ?php return; } ?> < ?php if ( comments_open() ) : ?>

    Оставьте комментарий

    < ?php cancel_comment_reply_link(); ?>
    < ?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>

    Вы должны войти чтобы оставить комментарий.

    < ?php else : ?>
    < ?php if ( is_user_logged_in() ) : ?>

    Вы вошли как /wp-admin/profile.php">< ?php echo $user_identity; ?>. Выйти »

    < ?php else : ?>
    />
    />
    < ?php endif; ?>
     
    < ?php comment_id_fields(); ?> < ?php do_action('comment_form', $post->ID); ?>
     
    < ?php endif; // If registration required and not logged in ?>
    < ?php endif; ?> < ?php if ( have_comments() ) : ?>
      < ?php wp_list_comments('callback=print_comment'); ?>
    < ?php else : ?> < ?php if ( comments_open() ) : ?> < ?php else : // comments are closed ?>

    Комментарии запрещены.

    < ?php endif; ?> < ?php endif; ?>
  2. Вывелось… Спасибо, OTSHELNIK-FM
    Просто я думал что будет иконка)
    А там просто текст)

    dream 9 комментариев

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*