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

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

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

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

<?php wp_list_comments(); ?>

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

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

<?php wp_list_comments(); ?>

и меняем на

<?php wp_list_comments('callback=custom_comment'); ?>

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

//свой формат комментариев
function custom_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID( ); ?>">
<div id="comment-<?php comment_ID( ); ?>" class="vcard">
<div class="avatar"><?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?></div>
<em><?php comment_author_link() ?></em>:
<small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title="">
<?php comment_date('d.m.Y') ?> в <?php comment_time() ?></a> <?php if (function_exists('comment_subscription_status')) { if (comment_subscription_status()) { echo '<small>(подписан на отзывы)</small>'; } } ?> <?php edit_comment_link('редактировать','| ',''); ?></small>
<?php if ($comment->comment_approved == '0') : ?>
<span class="waitmoderation">Ваш отзыв на модерации.</span>
<?php endif; ?>
<?php comment_text() ?>
<?php echo comment_reply_link(array('before' => '<div class="reply">', 'after' => '</div>', 'reply_text' => 'Ответить', 'depth' => $depth, 'max_depth' => $args['max_depth'] ));  ?>
</div>
<?php }
//закончили свой формат комментариев

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

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

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

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


Комментариев: 36, оставить свой »

Страницы: [2] 1 » Показать все

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

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

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

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

  3. # 34 sonika (291) 10.01.2010 в 22:07

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

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

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

  5. # 32 ionionion 29.12.2009 в 00:27

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

  6. # 31 sonika (291) 23.09.2009 в 23:38

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

  7. # 30 Mixa (8) 23.09.2009 в 21:19

    Что-то таки недокрутили в этих стилях. В 6 эксплорере аватар и дата комментария сьежают. Знаю что проблема из-за position:absolute, но как пофиксить — не знаю... :(

    Пример: babay.com.ua/?p=6#comments

  8. # 29 sonika (291) 16.09.2009 в 23:41

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

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

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

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

    sonika, совершенное верно, в файле functions.php между находятся массовые коды. Поскольку Вы не указали точно, куда именно следует вставлять код для своего формата комментариев, я закинула его сразу после <?php

    После чего и накрылся блог.

    Значит, всё не так просто. Наверное, существует совершенно определённое место, куда надо вставлять код, и я просто не знала, где оно, это место...

    В любом случае, я благодарна судьбе за то, что она натолкнула меня на Ваш прекрасный блог и очень полезный блог :)

  11. # 26 sonika 16.09.2009 в 13:17

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

    functions.phpкак правило начинается с <?phpи заканчивается ?>

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

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

    Теперь не знаю, ушёл мой предыдущий вопрос о functions.phр или нет...

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

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

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

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

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

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

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

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

  16. # 21 sonika (291) 24.06.2009 в 03:09

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

Страницы: [2] 1 » Показать все

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


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


Subscribe without commenting

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

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