Оптимизируем форму комментариев в WordPress. Часть 4

Комментарии, оптимизация

Всем привет! Продолжаю писать про оптимизацию комментариев в популярном блоговом движке WordPress. Кто не читал предыдущие выпуски, советую почитать: Часть 1, Часть 2, Часть 3.
Сегодня расскажу, как сделать подсветку комментариев автора блога и нумерацию комментариев.

Подсветка комментариев автора блога

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

 <?php comment_text() ?>

и заменить ее на следующее:

 <?php if(get_comment_author() == "admin"){?>
<div><?php comment_text() ?></div>
<?php } else comment_text() ?> 

Как видите, первоначальный код остается, плюс к нему добавляется условие, из которого следует, если вы оставите комментарий под ником admin, то будет использоваться отдельный див, то есть оформление. Кстати, имя admin нужно сменить на свое, с помощью которого вы оставляете комментарии на своем блоге. Например, у меня имя author. Значит для меня код будет выглядеть так:

 <?php if(get_comment_author() == "author"){?>
<div><?php comment_text() ?></div>
<?php } else comment_text() ?> 

Нужно добавить, что в некоторых шаблонах строчек может быть несколько, связано это с древовидностью, все эти строки нужно менять.
Главная часть настройки по внедрению кода закончены. На этом этапе нужно включить фантазию и придумать оформление комментария автора блога.
Заходим в style.css вашей темы, и в самом низу прописываем оформление, использовав класс admin_comment_style то есть получается следующее:

.admin_comment_style
{
/*Здесь прописываем оформление*/
}

Лично я заморачиваться не стал, и задал комментарию только фон и тоненькую обводку, у меня получилось так:

.admin_comment_style {
background: #f8fcef;
border: 1px solid #eee;
}

это только код, а отображается у меня как на картинке.

Не устали еще? Давайте немного отвлечемся и посмотрим цены на лобовое стекло Ford Focus… Посмотрели, теперь идем дальше.

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

Нумерация комментариев

Функция достаточно популярная, я считаю, что никакой пользы она не дает, но все-таки расскажу ее осуществить.
Опять же нам понадобится уже знакомый файл comments.php. Открываем его и находим строку

 <?php if ( $comments ) : ?>

Прямо перед ним добавьте код:

 <?php i 0; ?>

он означает, с какой цифры начинать нумерацию комментариев. Если постоянная равна 0, то нумерация будет начинаться с цифры 1, если $i=1, то счет начнется с 2, и т.д.
Далее ищем такой код:

 <?php foreach ($comments as $comment) : ?>

и сразу после него добавим строчку:

 <?php $i++; ?>

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

 <span class="comm_numbers">
<?php echo $i; ?>
</span>

но нужно определиться, где его расположить. Можно рядом с именем автора, можно в правой части панели комментария, здесь уже решать вам. Я приведу пример расположения рядом с именем автора. В comments.php ищем код:

 <?php comment_author_link() ?>

и перед ним вставляем наш код вывода. Теперь нужно задать оформление в файле style.css. Можно увидеть, что у кода вывода имеется класс под именем comm_numbers, значит в style.css создаем новый класс comm_numbers, и задаем нужные атрибуты. У меня получилось так:

 .comm_numbers {
padding: 3px; /*отступы со всех сторон по 3px*/
font-size:12px; /*размер шрифта*/
color:#000000; /*цвет шрифта*/
}

Ну вот и все. Покажу картинку, как у меня получилось.

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

Похожие записи:

  1. Оптимизируем форму комментариев в WordPress. Часть 3
  2. Оптимизируем форму комментариев в WordPress. Часть 1
  3. Оптимизируем форму комментариев в WordPress. Часть 2
  4. Хаки для WordPress. Часть 2
  5. Хаки для WordPress

Отзывов: 13

  1. Оптимизируем форму комментариев в WordPress. Часть 4…

    Thank you for submitting this cool story — Trackback from progg.ru…

  2. Очень хорошая и познавательная рубрика, но лично я не вижу никакого смысла в нумеровании комментариев. Замечал данную функцию во многих шаблонах для wp и меня она настораживает немного.

  3. Как вариант можно сделать комментарии в виде нумерованного списка.

  4. Когда много комментариев от одного и того же человека, то удобней ссылаться по номеру комментария, а не по времени его написания.

  5. Способ выделить комментарии автора неплох, но имеет один минус: «в некоторых шаблонах строчек может быть несколько, связано это с древовидностью, все эти строки нужно менять».
    Есть способ выделить комментарии автора с гораздо меньшей затратой времени на перелопачивание кода. Дело в том, что начиная с WordPress 2.7 разработчиками введен по умолчанию отдельный css класс для комментариев автора поста. Это класс .bypostauthor. Прописываем для него стиль в css — и вуаля, наслаждаемся.
    Поскольку уже накатала нехилую простынку, дополню: этот класс выделяет комментарии автора ПОСТА, то еть, если блог ведут несколько человек, то в каждой записи «админскими» будут именно комменты автора записи.
    С древовидными комментариями иогда возникает необходимость прописать не просто .bypostauthor, а .commentlist .bypostauthor.

  6. Спасибо вам добрый человек! Очень познавательная статья, которая помогла мне!

  7. Юльян:

    спс, интересная статья.У меня на блоге возникла проблема, может вы поможете разобраться.При добавлении нового комментария, он в админке и в списке «последние комментарии» на главной идёт с сылкой на другую новость (но почему то похожую, с близким ID). Сам текст комментария отображается правильно — к той новости, к которой его писали. Но ВордПресс считает почему-то его комментом к другой новости. :(
    Причём, для зарегистрированных пользователей, всё ок. Работает, как надо. Иногда даже для незарегистрированных.
    Пробовал заменять файл wp-content/themes/*theme_name*/comments.php, колупать в «/wp-includes» comment-template — но безуспешно.
    Подозреваю, что get_the_ID() почему-то возвращает не тот ID.
    Добавляются комментарии в базу данных, как я понял функцией comment_id_fields(). То есть, ошибку нужно искать в функциях, которые вызывает comment_id_fields() — это get_the_ID()…
    Что изменить, чтобы они добавлялись правильно, не представляю. :(
    Буду благодарен, если поможете разобраться в этой проблеме.

  8. Продажей приборов контроля веществ занимается наша организация. У нас Вы сможете приобрести переносные и портативные газоанализаторы, кондуктометры, измерители концентрации озона, плотномеры и pH-электроды. В своей работе мы делаем основной упор на работу с конечным потребителем. Доставка товаров производится по всей России. Заходите на сайт, выбирайте и заказывайте!

    Gzoanalisator.Ru: [url=http://gazoanalisator.ru]газоанализатор Хоббит Т
    [/url]

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

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

*