Как получить и показать 5 самых просматриваемых записей

17 апр. 2012 г., 21:54:05
Просмотры: 40.8K
Голосов: 10

Вот как я получаю просмотры для одной записи:

function getPostViews($postID){
        $count_key = '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.' Просмотров';
    }

Допустим, я хочу найти самые просматриваемые записи из 5000 записей и показать топ-5 самых просматриваемых записей.

Как можно сделать запрос для достижения этого?

// Запрос для получения топ-5 самых просматриваемых записей
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5,
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC'
);

$query = new WP_Query($args);

if($query->have_posts()) :
    while($query->have_posts()) : $query->the_post();
        // Вывод записей
        echo '<h2>' . get_the_title() . '</h2>';
        echo '<p>Просмотров: ' . getPostViews(get_the_ID()) . '</p>';
    endwhile;
    wp_reset_postdata();
endif;
0
Все ответы на вопрос 2
1
18

Ознакомьтесь с этим разделом Кодекса, чтобы узнать, как создать пользовательский запрос: http://codex.wordpress.org/Class_Reference/WP_Query

Ваш запрос будет выглядеть примерно так:

$query = new WP_Query( array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'posts_per_page' => 5
) );

По умолчанию сортировка будет от большего к меньшему, что даст вам "топ" 5 записей.

18 апр. 2012 г. 00:31:35
Комментарии

Как насчёт функции для подсчёта количества просмотров записи? Откуда она берётся?

Brad Dalton Brad Dalton
3 июн. 2014 г. 11:31:03
0

Ознакомьтесь с этим разделом Кодекса, чтобы узнать, как создать собственный запрос: http://codex.wordpress.org/Class_Reference/WP_Query

этот код будет работать

$query = new WP_Query( array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'posts_per_page' => 5
) );
3 июн. 2014 г. 10:13:43