Сортировка по популярности.

Нужен плагин чтоб сортировал записи по популярности.

То есть чем чаще просматривают запись на сайте тем выше он ранжируется. Как найти такое?

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

Следующий код нужно добавить в functions.php

 /**
 * Обновляем счетчик посещений
 *
 * @param type $postID
 */
 function onwp_set_post_views($postID) {
 $count_key = 'onwp_post_views_count';
 $count = get_post_meta($postID, $count_key, true);
 if ($count == '') {
 $count = 0;
 delete_post_meta($postID, $count_key);
 add_post_meta($postID, $count_key, '0');
 } else {
 $count++;
 update_post_meta($postID, $count_key, $count);
 }
 }
/**
 * Вызываем счетчик посещений
 *
 * @global type $post
 * @param type $post_id
 * @return type
 */
 function onwp_track_post_views($post_id) {
 if (!is_single())
 return;
 if (empty($post_id)) {
 global $post;
 $post_id = $post->ID;
 }
 onwp_set_post_views($post_id);
 }
add_action('wp_head', 'onwp_track_post_views');
/**
 * Применяем сортировку только на главной странице
 *
 * @param type $query
 */
 function onwp_exclude_category($query) {
 if ($query->is_front_page() && $query->is_main_query()) {
 $query->set('meta_key', 'onwp_post_views_count');
 $query->set('orderby', 'meta_value');
 $query->set('order', 'DESC'); // порядок сортировки
 }
 }
add_action('pre_get_posts', 'onwp_exclude_category');
 

В данном коде при просмотре странице мы ведем подсчет этих просмотров(при каждом открытии страницы увеличиваем на +1). Затем для главной страницы добавляем сортировку по этим просмотрам.

Для вывода количества просмотров воспользуйтесь функцией:

 function wpb_get_post_views($postID){
 $count_key = 'wpb_post_views_count';
 $count = get_post_meta($postID, $count_key, true);
 if($count==''){
 delete_post_meta($postID, $count_key);
 add_post_meta($postID, $count_key, '0');
 return "0 просмотров";
 }
 return $count.' просмотров';
 }
 

Сам вывод, нужно использовать в коде страницы:

 echo wpb_get_post_views($postI->D);
 
Добавить Комментарий

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

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

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.