Блог Андрея Юрченко

Авторский блог с полезными статьями по темам: создание сайта, заработок на сайте, заработок в интернете, работа на дому, работа в интернете, инфобизнес

Полезные хаки для комментариев WordPress. Часть 3

Рад снова приветствовать на своем блоге! Раз Вы здесь, значит мои статьи ( Часть 1, Часть 2) интересны и полезны для вас. Ну что, сегодня поговорим немного о цифрах и добавим в наши комментарии еще пару фишек, которые наверняка придутся по душе и вы используете их на своем блоге.

комментарии на сайт, wordpress комментарии

Думаю заинтересовал, тогда давайте перейдем к делу.

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

Рассмотрим два варианта реализации данной функции. Один из них для тех, кто не использует постраничный вывод комментариев, а второй для тех, кто соответственно использует. Саму настройку вывода комментариев вы можете сделать здесь: http://ваш блог.ru/wp-admin/options-discussion.php

1 вариант. Откройте файл ../wp-includes/comment-template.php и найдите в нем функцию function start_el. Дальше внутри этой функции найдите вот такую строку;

$GLOBALS['comment'] = $comment;

и прямо перед ней нужно добавить следующий код:

global $comment_num;

if(isset($comment_num)) {

            $comment_num++;

} else { $comment_num = 1; }

Далее спуститесь ниже по коду и найдите вот такие строчки кода:

<div class=»comment-meta commentmetadata»> ……..</div>

<?php comment_text() ?>

Там, где стоит многоточие будут вызовы различных функций и вам нужно прямо перед закрывающимся тегом </div> вставить вот такой код:

&nbsp;&nbsp;#<?php echo $comment_num; ?>

Вот и все, в итоге у вас после даты и времени оставления комментария еще будет выводиться решетка и порядковый номер комментария.

2 вариант. В этом варианте, который предназначен для тех, у кого используется постраничный вывод комментариев, нужно повторить все шаги из первого варианта, но только вместо вставки первого кода (global $comment_num;…) вставить следующий:

if ( » === $args['per_page'] && get_option(‘page_comments’) )

            $args['per_page'] = get_option(‘comments_per_page’);

if ( empty($args['per_page']) ) {

            $args['per_page'] = 0;

            $args['page'] = 0;

}

if ( $args['per_page'] ) {

            if ( » == $args['page'] )

                        $args['page'] = get_query_var(‘cpage’);

            }

$ccomp = ($args['page']-1) * $args['per_page'] ;

global $comment_num;

if(isset($comment_num)) {

            $comment_num++;

} else { $comment_num = 1; }

А вместо второго кода:  &nbsp;&nbsp;#<?php echo $comment_num; ?>

вставить вот такой код:

<?php echo $comment_num + $ccomp; ?>

Все готово и довольно просто реализовывается, правда?

Хочу обратить на один момент: возможно в вашей теме оформления вывод комментариев формируется через функцию mytheme_comment. В этом случае делаете все по аналогии и изменения вносите не в /wp-includes/comment-template.php, а в файле functions.php в соответствующее место функции mytheme_comment.

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

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

Конечно можно все это сделать при помощи плагина, но я сторонник меньшего их использования и по возможности делать все на чистом коде, что дает очевидные плюсы-снижаются нагрузки и отсутствует лишний мусор.

А сейчас хочу представить вам два варианта скрипта, которые будут считать и выводить количество комментариев. Первый будет считать количество по имени автора, а второй по e-mail.

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

1 вариант для подсчета по имени:

/*** Вывод количества комментов автора по имени***/ 

add_filter(‘get_comment_author_link’, ‘count_author_comm’, 11);

function count_author_comm($mycommcounter) {

global $wpdb, $comment;

            // Count comments per author name

            $queryString=»SELECT COUNT(*) as comments FROM «.$wpdb->comments.» WHERE comment_author=’».$wpdb->escape($comment->comment_author).»‘»;

            $comments_count = $wpdb->get_var($queryString);

            // Show comments count per author name

                        if ($comment->comment_type != «pingback» && $comment->comment_type != «trackback» && !is_admin()) {

                                   $mycommcounter .= » («.$comments_count.» комм.)»;

                                   return $mycommcounter;

   }

}

2 вариант для подсчета по E-Mail:

/*** Вывод количества комментов автора по e-mail***/ 

add_filter(‘get_comment_author_link’, ‘count_author_comm’, 11);

function count_author_comm($mycommcounter) {

global $wpdb, $comment;

            // Count comments per author mail

            $queryString=»SELECT COUNT(*) as comments FROM «.$wpdb->comments.» WHERE comment_author_email=’».$wpdb->escape($comment->comment_author_email).»‘»;

            $comments_count = $wpdb->get_var($queryString);

            // Show comments count per author mail

                        if ($comment->comment_type != «pingback» && $comment->comment_type != «trackback» && !is_admin()) {

                                   $mycommcounter .= » («.$comments_count.» комм.)»;

                                   return $mycommcounter;

     }

}

Остался вопрос в установке. Скопируйте один из кодов и вставляете в файл functions.php своей темы в любое место (если есть затруднения в месте вставки, то лучше вставить в самое начало).

Тем же, у кого присутствует вывод трекбеков и пингбеков, возможно пропадание ссылок на них. Для устранения этих недостатков необходимо добавить код в конец функции после закрывающей скобки в if:

else

{

   $mycommcounter .= «»;

   return $mycommcounter;

}

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

На сегодня все. Надеюсь, что данные скрипты окажутся полезными для вас и найдут свое применение на ваших ресурсах.

 Как Вам статья? Будут вопросы или возникнут проблемы — обязательно пишите  в комментариях, а так же буду благодарен за любые отзывы.

С уважением, Андрей Юрченко

Поделитесь статьей в социальных сетях!

Подпишись на RSS-рассылку и получай новые статьи на почту!

Введите свой e-mail:

МАГИЧЕСКИЙ ШАБЛОН ПОДПИСНОЙ СТРАНИЦЫ В ПОДАРОК, ЗАБИРАЙТЕ

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

Комментарии: 2

Оставить комментарий
  1. Можно еще убрать панель в админке, или добавить дополнительные кнопки в текстовый редактор и прочее, но все это Вы можете найти в интернете без проблем. Если встретятся мне еще полезные хаки для WordPress, я обязательно о них напишу.

    1. Андрей:

      Конечно можно и об этом я уже писал.
      Для WordPress хаков много. В своих статьях я описал самые нужные и необходимые в первую очередь, которые реализуются без плагинов, тем самым уменьшить нагрузку на сервер и не замедлять свой сайт.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Комментарии Вконтакте:

Content Tab Three

Блог Андрея Юрченко © 2016

ВВЕРХ