Свой формат комментариев в WordPress 2.7

[ ←Вернуться к стандартному виду ]

Печатная версия

В WordPress 2.7 появились древовидные комментарии и упростился шаблон comments.php, отвечающий за вывод этих самых комментариев, вместо кучи кода достаточно вписать

С одной стороны — здорово!, а с другой стороны... что делать, если хочется добавить свои стили / изменить расположение элементов / заменить аватары gravatar.com на свои?

Открываем comments.php (в папкеТемы), находим

и меняем на

Затем в functions.php (тоже в папке Темы) добавляем:

//свой формат комментариев
function custom_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>

  • id="li-comment-">

    :
    '; } } ?>
    comment_approved == '0') : ?>
    Ваш отзыв на модерации.


    '

    ', 'after' => '

    ', 'reply_text' => 'Ответить', 'depth' => $depth, 'max_depth' => $args['max_depth'] )); ?>

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

    Все новые встроенные css классы для комментариев смотрите на странице «Новинки WordPress 2.7» (пункт Комментарии).

    Официальная страница в Кодексе: Template Tags/wp list comments

    Скачать пример-шаблон comments.php + css для комментариев WordPress 2.7


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

    1. # Терехов (1) 14.03.2009 в 01:17

      Соника, радует то, что в последнее время ты стала писать почаще! Вообще в восторге от девушки, которая шарит в коде! Очень хочу взять у тебя интервью для своего блога! Соглашайся!

    2. # Владимир Игонин (1) 16.03.2009 в 21:38

      Спасибо, давно собирался у себя каменты перелопатить после перехода на 2.7.

    3. # Александр (5) 19.03.2009 в 15:34

      Не работает для версии 2.7.1 руссифицированной с сайта mywordpress.ru

    4. # Александр (5) 19.03.2009 в 15:47

      После добавления:

      Затем в functions.php (тоже в папке Темы) добавляем:

    5. # sonika (300) 20.03.2009 в 20:08

      Александр, должно работать. Не знаю что вам посоветовать кроме как вносить изменения в файлы Темы аккуратнее, т.к. непонятно в чем проблема, код «съелся»...

    6. # Александр (5) 23.03.2009 в 11:20

      Девушка, спасибо Вам за то, что Вы есть, вся такая замечательная! Вот ;-)

    7. # Александр (5) 23.03.2009 в 14:43

      А как сделать так, чтобы форма комментирования шла перед комментариями!?

    8. # sonika 23.03.2009 в 19:43

      Александр, в comments.php сначала должен идти вызов формы комментирования, она начинается с <form и заканчивается </form>
      а затем вызов комментариев wp_list_comments

    9. # Andrew S. (2) 06.04.2009 в 14:05

      Много интересных фишечек реализовали в последней версии WP. Надо бы, наверное, будет покапаться и реализовать теже древовидные комментарии и описанное в этом посте.
      Я так понял, это должно быть относительно просто - отредактировать comments.php, добавить functions.php (по умолчанию у меня его в теме просто нет) в котором будут указаны все те стили, которые реализованы у меня в теме?

    10. # fess (1) 17.04.2009 в 12:13

      Вопрос как раз по теме: видел в других блогах, что можно вместо просто ссылки "N комментариев", сделать картинку, на которой циферкой указано количество комментариев. Не знаете как?

    11. # Trackback Daemony's Live Blog 23.04.2009 в 15:31

      Мелкосрочный ремонт: небольшая адаптация под WP 2.7.x...

      Посмотрел сегодня, как разростаются комментарии и подумал о том, что давно пора было уже адаптировать код шаблона блога под WordPress 2.7 ведь ...

    12. # ageent (1) 12.05.2009 в 09:53

      Сенкс. Как раз в нужный момент, под руку попалось.

    13. # Айрат (10) 05.06.2009 в 15:28

      Вопрос глупый, но замучался найти не могу — хотя раньше делал такое. В общем — как отобразить номер текущего комментария (например, этот будет 13м) только в данном посте? Есть функция или просто создается простой счетчик, который считает номер в цикле комментариев поста?

    14. # Roms (2) 11.06.2009 в 12:16

      А есть ли какой-нибудь способ выделить для читателя новые комментарии?

    15. # Сладкоежка (1) 11.06.2009 в 15:25

      Файл не скачивается =( закачайте пожалуйста в другое место

    16. # Roms (2) 14.06.2009 в 18:19

      Соника, может подскажешь как у Вас в блоге реализована лента комментариев? Это плагин или же в ВП есть функция?

      Сорри, что немного не по теме.

    17. # Aksyusha (1) 17.06.2009 в 20:24

      А с какими версиями он дружит? а то у меня чет не получается поставить плагин...

    18. # Юля 18.06.2009 в 09:19

      Здравствуйте, подскажите как можно отсортировать комментарии по убыванию только в определенных рубриках? Мы уже перерыли практически все файлы Вордпресса, но так и не получилось разобраться.

    19. # Vootshi 23.06.2009 в 02:25

      а что делать, если в файле comments.php нет строчки
      ?

    20. # sonika 24.06.2009 в 03:00

      Vootshi, взять как пример файл comments.php из выложенного мной архива и по необходимости перекроить под себя.

      Aksyusha, это НЕ ПЛАГИН.

      Юля, попробуйте wp_list_comments('reverse_top_level=DESC'); в кодексе параметр reverse_top_level упоминается http://codex.wordpress.org/Template_Tags/wp_list_comments

    21. # sonika (300) 24.06.2009 в 03:09

      Айрат, у меня ещё со времен царя гороха строит плагин Paginated Comments, вот он и считает номера комментариев :)

    22. # CashGiftsDirect (1) 02.07.2009 в 02:59

      Thank you! I needed help figuring out how to log out of WordPress.com

    23. # Айрат (10) 07.07.2009 в 08:23

      Соника, вы мой спаситель просто :) Спасибо большое

    24. # Allpa (6) 10.09.2009 в 00:50

      Затем в functions.php (тоже в папке Темы) добавляем

      После этого мой блог накрылся медным тазом - везде белый экран, никуда не могу зайти :(( Написала хостеру хелп (у меня нет доступа к ФТП), а пока хочу спросить: в папке Темы - что это значит? может, я неправильно поняла и не туда закинула код?

      Я кинула его в файл functions.php, находящийся в папке используемой на блоге темы...

    25. # Allpa (6) 10.09.2009 в 00:54

      Соника, что-то косячит у Вас отправка комментариев... :( При первой попытке мне сообщили, что результат капчи неверен. При второй попытке отправить камент выскочила ошибка "Вы попытались открыть страницу ля-ля-ля, которой не найдено" (как-то так). Третья попытка: "Вы уже сказали это!".
      Теперь не знаю, ушёл мой предыдущий вопрос о functions.phр или нет...

    26. # sonika 16.09.2009 в 13:17

      Allpa, если у вас нет доступа к ftp, то лучше вообще в файлах не ковыряться, если вы не уверены, что точно знаете, что делаете (в том числе уверены, что вставляете код не нарушая синтаксис php в functions.php в папке Темы). У меня все описанное выше работает на неск. сайтах.
      functions.php как правило начинается с <?php и заканчивается ?>

    27. # Allpa (6) 16.09.2009 в 16:03

      sonika, совершенное верно, в файле functions.php между находятся массовые коды. Поскольку Вы не указали точно, куда именно следует вставлять код для своего формата комментариев, я закинула его сразу после <?php
      После чего и накрылся блог.
      Значит, всё не так просто. Наверное, существует совершенно определённое место, куда надо вставлять код, и я просто не знала, где оно, это место...
      В любом случае, я благодарна судьбе за то, что она натолкнула меня на Ваш прекрасный блог и очень полезный блог :)

    28. # Allpa (6) 16.09.2009 в 16:06

      Между <?php и ?> находятся массовые коды, я хотела сказать - не учла, что ВП скушает кусок кода (в предыдущем моём комментарии), простите...

    29. # sonika (300) 16.09.2009 в 23:41

      "Определенное место" в functions.php (и в любом другом php коде, будь то вордпресс или что-то другое) простое: вставлять НЕ внутрь другой функции, не нарушать синтаксиса php. Разных Тем — легион, и вариантов functions.php в Темах не меньшее количество. Если не знаете точно куда вставлять, то вставляйте в конец файла перед ?>

    30. # Mixa (13) 23.09.2009 в 21:19

      Что-то таки недокрутили в этих стилях. В 6 эксплорере аватар и дата комментария сьежают. Знаю что проблема из-за position:absolute, но как пофиксить - не знаю... :(
      Пример: http://babay.com.ua/?p=6#comments

    31. # sonika (300) 23.09.2009 в 23:38

      Mixa, скорее всего в css еще какие-то правила есть относительно комментариев, у меня ничего никуда не сползает в IE6

    32. # ionionion 29.12.2009 в 00:27

      А как все комментарии вывести на одной странице с пейджингом?

    33. # 7ja (2) 09.01.2010 в 22:20

      А куда файл стилей, тот что в архиве, - дописать в общий файл стилей, или отдельно?

    34. # sonika (300) 10.01.2010 в 22:07

      7ja, без разницы: в style.css вставьте содержимое этого css-файла или подключите отдельно.

    35. # fos (1) 17.01.2010 в 17:43

      А как можно пользователям разрешить загружать свои аватары (не граватар). Есть ли такой плагин для wordpress?

    36. # Дмитрий 26.02.2010 в 20:19

      Спасибо! Я как раз думал, как решить эту проблему.. А тут даже плагин не потребовался :)

    37. # NnpctO (1) 10.11.2010 в 00:28

      Я сделал все как показали и вроде не допустил ошибок, а после обновления страницы в админке появилась пустая белая страница с черной строкой с ошибкой на 24 линии.
      Скажите, пожалуйста, из-за чего вызвана эта ошибка, и самое главное как мне теперь исправить все это ведь у меня нет резервной копии сайта как назло. Пожалуйста, помогите советом, если можете. Буду ждать
      С Уважением Сергей

    38. # Львівський бомж 27.01.2011 в 16:20

      Отличная идея!

    39. # Aspix 19.05.2011 в 15:02

      А может кто-нибудь помочь? Поставил все как тут описано, вылазиет ошибка вместо комментария: Warning: call_user_func(custom_comment) [function.call-user-func]: First argument is expected to be a valid callback in /wp-includes/comment-template.php on line 1333
      Как исправить?

    40. # Сергей (1) 30.08.2011 в 01:48

      Sonika,ты просто молодец,все так внятно разжевала,как для первоклассника.Здорово!
      Ты отличный программист!!! Респект!

    41. # Наталья 27.02.2012 в 12:25

      А подскажите пожалуйста, что прописать в в том коде , что бы у меня не "Править" было а просто ответить на комментарий в этом же окне не переходя в админку  ? Заранее спасибочки!

    42. # илья (1) 19.04.2012 в 09:53

      Пробовал делать как писали, не вышло почему  то,  сразу вылетала ошибка funcshion.php сделал малость по другому, взял только стили и заменил, теперь все работает. Спасибо

    43. # Согдиана (1) 22.04.2012 в 01:41

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

    44. # Денис (2) 13.05.2012 в 14:04

      не могу подобрать плагин по комментарием по теме suffusion
      что Вы можете мне подсказать спасибо за ответ всего доброго

    45. # Владимир (1) 15.10.2012 в 10:29

      Подскажите плиз что за плагин у вас стоит или в чем фишка. Сейчас у Вас можно выбирать всякие украшательства как-то: болд, италик...
      А также интересно, можно ли реализовать каким-то образом загрузку картинок коментаторами на сайт.
       
      Спасибо!

    46. # RomanZmeu (1) 28.08.2013 в 09:05

      Спасибо. пригодилось для моего блога

    47. # Tit (1) 23.03.2014 в 15:49

      Изменение в файл сразу приводит к ошибкам.Не очень удобно. Я думаю,чтобы ошибки нет,довольно использовать плагин.

    Подписаться на фид.
    RSS комментариев к этой записи. | TrackBack URI

    Написать комментарий


    Все саттелиты — в топку! Даже не сомневайтесь. Для вопросов о вордпресс не по теме поста есть два русскоязычных форума по wordpress.


    Warning: Illegal string offset 'solo_subscribe' in /var/www/sonika/data/www/sonika.ru/blog/wp-content/plugins/subscribe-to-comments.php on line 304

    Подписаться, не комментируя

    [ ←Вернуться к стандартному виду ]

    Печатная версия