При разработке шаблона к Wordpress для своего блога, когда я добрался до комментариев, я столкнулся с проблемами.
Собственно проблема была одна: как это сделать?
В шаблонах для вывода списка комментариев обычно используют функцию wp_list_comments. Вот примерно так:
<ol class="commentlist"> <?php wp_list_comments(); ?> </ol>
Казалось бы тут негде развернуться фантазии разработчика шаблонов. Функция wp_list_comments выдаёт комментарии в некоем заранее определённом шаблоне, и влиять на отображение можно только через таблицу стилей для этих элементов. Но выход нашёлся.
Во-первых заранее определённых шаблонов несколько, и применить их можно задав параметр style, при вызове этой функции. Значение может быть ‘div’, ‘ol’, или ‘ul’.
Примеры:
<div class="commentlist"> <?php wp_list_comments(array('style' => 'div')); ?> </div>
или
<ol class="commentlist"> <?php wp_list_comments(array('style' => 'ol')); ?> </ol>
или наконец
<ul class="commentlist"> <?php wp_list_comments(array('style' => 'ul')); ?> </ul>
После того как выбран шаблон – можно играть стилями, двигать аватару вправо-влево, играть границами и прочими параметрами, до получения нужного эффекта.
Во-вторых, если игра стилями не может дать того что нужно, можно ввести свой шаблон оформления. Наподобие такого:
В общем я не смог придумать ничего лучшего чем использование таблиц.
Для этого в шаблоне нужно вызвать функцию wp_list_comments с хитрым параметром callback
<ol class="commentlist"> <?php wp_list_comments('callback=mytheme_comment'); ?> </ol>
Где mytheme_comment это название особой функции, которую нужно вставить в functions.php шаблона.
Эту функцию можно сделать например так:
<?php function mytheme_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <div id="comment-<?php comment_ID(); ?>" class="mycomment"> <table><tbody><tr><td width="80" valign="top" > <div class="comment-author vcard"> <?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?> </div> </td><td width="100%" valign="top" style="padding-left: 10px;"> <?php if ($comment->comment_approved == '0') : ?> <em><?php _e('Your comment is awaiting moderation.') ?></em> <br /> <?php endif; ?> <div class="comment-meta commentmetadata"> <?php printf(__('<cite class="fn">%s</cite>'), get_comment_author_link()) ?> пишет <a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','') ?></div> <?php comment_text() ?> <div class="reply"> <?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?> </div> </td></tr></table> </div> <?php } ?>
Вот такой код у меня в шаблоне на момент написания поста. Для ваших целей можно изменить оформление вывода
Всё что тут было упомянуто так или иначе можно найти на
См.также
PS: В ближайшее время постов по WordPress не предвидится. В связи с окончанием разработки шаблона для своего блога.
Нет постов по теме.
RSS-подписка
Супер пост, крайне полезен для всех кто заводит блог.
Оформлен, кстати, неплохо )
Что-то я не вкурил, зачем такие сложности…
Попробуй без этих сложностей сделать компановку комментариев как у меня
Ммммм…
Мне только интересно, как у тебя выглядит длиииииинный-длиииинный камент.
Так что, не обессудь.
Ммммм…
Мне только интересно, как у тебя выглядит длиииииинный-длиииинный камент.
Так что, не обессудь.
Ммммм…
Мне только интересно, как у тебя выглядит длиииииинный-длиииинный камент.
Так что, не обессудь.
Ммммм…
Мне только интересно, как у тебя выглядит длиииииинный-длиииинный камент.
Так что, не обессудь.
Ага, понял… хитрО.
А не подскажете, как быть с древовидными комментариями в новом вордпресса? Как можно их кастомизировать?
@ madbirdy:
Как-то не сложилась у меня любовь к древовидным комментам. Не нравятся они мне. Не нравятся они мне. Они существенно усложняют не только программную часть, но и логику работы приложения.
Поэтому я глубоко с ними не копался.
Кстати 2.8 пока не ставлю. Судя по отзывам не фонтан. Жду 2.8.1
*супер пост было сказано к тому, что не многие лезут разбираться c wp_list_comments – обычно дефолтное оформление многим подходит и так.
кроме редактирование Edit полезно пихать ссылки на Delete и Spam
Спасибо огромное! Благодаря этому способу можно довольно просто закастомизировать формочки с комментами!
Напоролся на оформление шаблона, у Соники нашел способ решеиня проблемы
@ Dandr:
Я так понимаю это не для древо видных
@ qosys:
согласен с тобой
@ Dandr:
@ Chupik:
@ Макс:
@ madbirdy:
Тест.
Как такую штуку для ответа сделать?
Плагин Comment Toolbar
А как можно поменять стиль и текст у этих строчек?
“Комментариев к записи: 5″
“Оставить комментарий”
У вас вместо них написано “xx комментов” и “ответить”.
Пишу плагин – надо вывести на странице комментарии к посту.
Так этот метод не работает. Не знаешь почему?