Немного о настройке вывода комментариев в WordPress. Довольно часто сталкиваюсь с тем, что верстальщики придумывают некие нестандартные для WordPress конструкции для вывода комментариев. В каких-то случаях html-конструкцию можно привести стандартному формату поработав с css, заменив какие-то теги, но это не всегда быстрый и простой путь.
Древовидные/вложенные комментарии
Одна из сложностей — это вывод так называемых nested комментариев (древовидных или вложенных), т.е. комментариев, которые написаны в ответ на чей-то и должны отображаться таким образом, чтобы визуально было понятно, что это ответ. Количество nested комментариев лучше всего ограничить до 2х, иначе могут возникнуть проблемы с их корректным отображением, т.к. в вёрстке обычно не предусмотрено наличие более двух уровней и многоуровневые обсуждение — явление довольно редкое. Ограничить nested комментарии можно тут: Настройки — Обсуждение — Разрешить древовидные (вложенные) комментарии глубиной уровней.
Вывод комментариев
Осуществляется при помощи функции wp_list_comments() с указанием дополнительных параметров, например:
Функция для вывода комментариев обозначается как callback=my_comment
Функция для закрытия тегов или вывода другой дополнительной информации: end-callback=end_comment
Обе функции можно расположить либо в comments.php либо в functions.php
Стандартные функции вывода можно взять здесь: codex.wordpress.org Подробное описание на русском: wp-kama.ru
Для понимания того, что возвращает стандартная функция wordpress можно воспользоваться var_damp’ом:
Она вернёт что-то подобное:
Описание элементов доступно тут: codex.wordpress.org
При помощи стандартных условий можно легко настроить вывод того или иного элемента:
Отдельно нужно сказать о функции, которая закрывает каждый комментарий, её можно и не дописывать, но в особых случая она может выглядеть следующим образом:
Особые случаи
Если не получается изменить вывод комментариев стандартными средствами, то можно использовать метод нестандартный А именно, перед отображением данных поработать с ними в буфере при помощи функций ob_start() и ob_get_clean() Это будет выглядеть как-то так:
Но я думаю, что этот метод подойдёт только для тех, кто не хочет разобраться с тем как работают стандартные функции…
Дополнительно
Список стандартных wordpress функций для работы с комментариями, пингами и т.п. элементами: wp-kama.ru
Свежие комментарии