Свой формат комментариев в 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
Спасибо! Я как раз думал, как решить эту проблему... А тут даже плагин не потребовался :)
А как можно пользователям разрешить загружать свои аватары (не граватар). Есть ли такой плагин для wordpress?
7ja, без разницы: в style.css вставьте содержимое этого css-файла или подключите отдельно.
А куда файл стилей, тот что в архиве, — дописать в общий файл стилей, или отдельно?
А как все комментарии вывести на одной странице с пейджингом?
Mixa, скорее всего в css еще какие-то правила есть относительно комментариев, у меня ничего никуда не сползает в IE6
Что-то таки недокрутили в этих стилях. В 6 эксплорере аватар и дата комментария сьежают. Знаю что проблема из-за position:absolute, но как пофиксить — не знаю... :(
Пример:
«Определенное место» в functions.php (и в любом другом php коде, будь то вордпресс или что-то другое) простое: вставлять НЕ внутрь другой функции, не нарушать синтаксиса php. Разных Тем — легион, и вариантов functions.php в Темах не меньшее количество. Если не знаете точно куда вставлять, то вставляйте в конец файла перед
?>Между
<?phpи?>находятся массовые коды, я хотела сказать — не учла, что ВП скушает кусок кода (в предыдущем моём комментарии), простите...sonika, совершенное верно, в файле functions.php между находятся массовые коды. Поскольку Вы не указали точно, куда именно следует вставлять код для своего формата комментариев, я закинула его сразу после <?php
После чего и накрылся блог.
Значит, всё не так просто. Наверное, существует совершенно определённое место, куда надо вставлять код, и я просто не знала, где оно, это место...
В любом случае, я благодарна судьбе за то, что она натолкнула меня на Ваш прекрасный блог и очень полезный блог :)
Allpa, если у вас нет доступа к ftp, то лучше вообще в файлах не ковыряться, если вы не уверены, что точно знаете, что делаете (в том числе уверены, что вставляете код не нарушая синтаксис php в functions.php в папке Темы). У меня все описанное выше работает на неск. сайтах.
functions.phpкак правило начинается с<?phpи заканчивается?>Соника, что-то косячит у Вас отправка комментариев... :( При первой попытке мне сообщили, что результат капчи неверен. При второй попытке отправить камент выскочила ошибка «Вы попытались открыть страницу ля-ля-ля, которой не найдено» (как-то так). Третья попытка: «Вы уже сказали это!».
Теперь не знаю, ушёл мой предыдущий вопрос о functions.phр или нет...
После этого мой блог накрылся медным тазом — везде белый экран, никуда не могу зайти :(( Написала хостеру хелп (у меня нет доступа к ФТП), а пока хочу спросить: в папке Темы — что это значит? может, я неправильно поняла и не туда закинула код?
Я кинула его в файл functions.php, находящийся в папке используемой на блоге темы...
Соника, вы мой спаситель просто :) Спасибо большое
Thank you! I needed help figuring out how to log out of WordPress.com
, у меня ещё со времен царя гороха строит плагин Paginated Comments, вот он и считает номера комментариев :)