Количество одобренных комментариев находится в поле comment_count
объекта поста:
echo '<span class="entry-meta-ncomments">', get_post()->comment_count, '</span>';
Также можно использовать get_comments()
с аргументом 'count' => true
:
$n_count = get_comments(array('post_id' => $post_id, 'count' => true, /* другие параметры */ ));
Такой подход выполнит дополнительное обращение к БД. Его имеет смысл использовать, если требуется рассчитать количество комментариев в выборке по определённым параметрам (статус, идентификатор автора и т.д.);
Для подсчёта количества просмотров требуется плагин, считающий просмотры.
Например post-views — он добавит функцию get_post_views()
, использовать которую можно, например, так:
if (function_exists('get_post_views')) {
$n_views = get_post_views('normal', 'total', 'content', false, get_post()->ID);
echo '<span class="entry-meta-nviews">', $n_views, '</span>';
}
Проверка на наличие функции необходима на случай отключения плагина.
-
Ответ изменён 8 лет, 1 месяц назад пользователем Gottfrid Q.. Причина: в листинге указана переменная $post вместо функции get_post()
Комментарии вывести удалось
echo '<span class="entry-meta-ncomments">', get_post()->comment_count, '</span>';
заработало! спасибо!
А вот количество просмотров — нет… post-views — стоит.
Возникает ли при вызове get_post_views() какое-нибудь сообщение об ошибке?
Присутствует ли в меню «Настройки» пункт «Post Views» и выдаётся ли на его экране информация по просмотрам?
Сразу после активации плагина вызов get_post_views(…) для любого поста выдаёт 0.
Хм, очень странно. Только сейчас заметил! Плагин стоит, он активирован, но в меню Настройки пункта Post Views нет… Хотя, если зайти в админке в список публикаций, там подсчет ведется.
Никаких ошибок не выдает.
-
Ответ изменён 8 лет, 1 месяц назад пользователем mazurik.
Может быть плагин не тот? Я имел в виду этот: https://wordpress.org/plugins/post-views/.
Да, странно… Стоит WP-post-view
Поставил тот что Вы указали. Вывести результат удалось, НО, в админке количество просмотров 250, а на самом сайте, почему-то, только 3… Т.е., он берет данные не из базы данных, а начал считать их сам с нуля…
Модератор
Юрій
(@yube)
Т.е., он берет данные не из базы данных, а начал считать их сам с нуля…
Каждый плагин хранит данные по-своему, как Автор придумает. Иногда, правда, случаются совпадения, но это скорее исключение, чем правило.
А есть ли плагин, который выводит именно данные hits из базы данных?
Модератор
Юрій
(@yube)
данные hits из базы данных?
Движок не считает просмотры. Какой плагин записал, тот и должен читать и выводить.
При установленном WP-post-view выдать просмотры можно функцией echo_post_views($post_id)
:
if (function_exists('echo_post_views')) {
echo_post_views(get_post()->ID);
}
Каждый такой вызов производит 3 обращения к БД и увеличивает значение счётчика просмотров на 1, поэтому вызывать её следует только на странице поста и только для этого же поста.
Причём при первом вызове для определённого поста функция выдаёт 0, хотя счётчик устанавливается в 1.
На странице архива можно аналогичным образом использовать wp_get_post_views($post_id)
.
Вас понял! Благодарю всех за помощь!