Выводим популярные посты в wordpress

популярные посты wordpress

Для вывода популярных постов в wordpress есть множество плагинов, но, как правило их функционал излишен или используют странные алгоритмы.

Для примера некоторые плагины подсчитывают популярные посты основываясь на количестве комментариев. Но на сайте комментарии могут быть отключены или к статье может быть всего несколько комментариев и путь подсчета их количества будет не совсем правильным.

Для вывода популярных постов мы будем считать количество зашедших на статью и отображать список постов.

Это простое руководство покажет, как это сделать в два простых шага.

Пример списка популярных постов:

пример списка популярных постов

Скриншот взят с моего сайта webjeb.ru. Вы можете увидеть пример в сайдбаре этого блога. Отображение может отличаться в зависимости от css стилей используемых в вашей теме. Это руководство сосредоточенно на php/html

Это способ очень гибок т.к. вы легко можете поменять количество постов, разметку, добавить превью поста и так далее.

к оглавлению ↑

1. Подсчет визитов

Добавьте код ниже в файл functions. php вашей темы.

	
function webjeb_popular_posts($post_id) {
	$count_key = 'popular_posts';
	$count = get_post_meta($post_id, $count_key, true);
	if ($count == '') {
		$count = 0;
		delete_post_meta($post_id, $count_key);
		add_post_meta($post_id, $count_key, '0');
	} else {
		$count++;
		update_post_meta($post_id, $count_key, $count);
	}
}
function webjeb_track_posts($post_id) {
	if (!is_single()) return;
	if (empty($post_id)) {
		global $post;
		$post_id = $post->ID;
	}
	webjeb_popular_posts($post_id);
}
add_action('wp_head', 'webjeb_track_posts');
	

Код содержит две функции. Первая функция проверяет и устанавливает счетчик визитов для поста. Вторая функция action для wp_head и вызывает первую, когда загружен пост.

В основном мы используем весь набор функций *_post_meta для получение, проверки, добавление, обнавления и удаления кастомного поля popular_posts.

к оглавлению ↑

2. Выводим список популярных постов

Для вывода популярных постов мы будем использовать WP_Query для создания кастомного loop.

кастомный цикл и вывод списка популярных постов

Добавьте код выше в ваш sidebar.php файл шаблона.

  • Запрашиваем пять постов отсортированных по наивысшему значению ключаpopular_posts
  • В цикле выводим ссылку и заголовок поста
  • Завершаем цикл и сбрасываем переменную $post используя wp_reset_postdata ()
к оглавлению ↑

Кастомизация

Вы можете изменить запрос для своих нужд.

  • Меняем количество постов 'posts_per_page' => 7
  • Выводим наименее популярные посты изменив 'order' => 'DESC' на 'order' => 'ASC'
  • Выводим по количеству комментариев изменив 'orderby' => 'meta_value_num' на 'orderby' => 'comment_count'
  • Изменить разметку для вывода заголовка, краткого содержания, автора, даты, меток и т. д.

Используя разнообразные параметрыWP_Query вам доступно намного больше возможностей. Используя эту технику помогает сохранить сайт быстрым и лего настраиваемым.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Заказать верстку

Оставляя свои контактные данные,
Вы соглашаетесь с Политикой конфиденциальности.