Показать сообщения за 7 дней

Я пытаюсь отобразить 5 самых рейтинговых сообщений за прошлую неделю (7 дней) на моем сайте, однако я не могу понять, как их отображать.

Вот что я достиг до сих пор, но он не работает:

<?php $slider_query = new WP_Query('posts_per_page=5&cat=3&orderby=highest_rated&order=desc'); ?>

<?php

$mylimit = 7 * 86400; //days * seconds per day

while ($slider_query->have_posts()) : $slider_query->the_post();

    $post_age = date('U') - get_post_time('U');

    if ($post_age < $mylimit) { 
?>

//The Post

<?php } ?>

<?php endwhile;?>
6 голосов | спросил Swen 13 Maypm13 2013, 16:48:27

4 ответа


14

В дополнение к решению birgire, с WordPress 3.7, вы можете использовать параметры даты .

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

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'orderby' => 'date',
    'order' => 'DESC',

    // Using the date_query to filter posts from last week
    'date_query' => array(
        array(
            'after' => '1 week ago'
        )
    )
); 
ответил Christine Cooper 27 42014vEurope/Moscow11bEurope/MoscowThu, 27 Nov 2014 18:34:37 +0300 2014, 18:34:37
5

Я думаю, что это, должно быть, было много раз разрешено здесь, на WordPress Answers.

Вы также можете проверить примеры в параметрах Time parameters в Codex для WP_Query

Вот два из них (слегка модифицированные для ваших нужд)

Пример 1:

// Create a new filtering function that will add our where clause to the query
function filter_where( $where = '' ) {
    // posts in the last 7 days
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-7 days')) . "'";
    return $where;
}

add_filter( 'posts_where', 'filter_where' );
$slider_query = new WP_Query('posts_per_page=5&cat=3&orderby=highest_rated&order=desc');    
remove_filter( 'posts_where', 'filter_where' );

Пример 2:

// Create a new filtering function that will add our where clause to the query
function filter_where( $where = '' ) {
    // posts for May 1 to March 8, 2013
    $where .= " AND post_date >= '2013-05-01' AND post_date < '2013-05-8'";
    return $where;
}

add_filter( 'posts_where', 'filter_where' );
$slider_query = new WP_Query('posts_per_page=5&cat=3&orderby=highest_rated&order=desc');
remove_filter( 'posts_where', 'filter_where' )

, предполагая, что этот orderby=highest_rated покрыт некоторым плагином, как описано в комментарии выше.

ответил birgire 13 Maypm13 2013, 17:47:54
0

Из WP_Query Параметры времени :

Возвращает сообщения только за текущую неделю:

$week = date('W');
$year = date('Y');
$query = new WP_Query( 'year=' . $year . '&w=' . $week );
ответил RRikesh 13 Maypm13 2013, 17:03:38
0

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

                $date_range = strtotime ( '-7 day' );  
                $args = array(
                    'post_type'         => 'post',
                    'post_status'       => 'publish',
                    'posts_per_page'    => '10',
                    'meta_key'          => 'post_views_count',
                    'orderby'           => 'meta_value_num',
                    'order'             => 'DESC', 
                    'date_query'        => array(
                        array(
                            'after' => array(
                                'year'  => date('Y', $date_range ),
                                'month' => date('m', $date_range ),
                                'day'   => date('d', $date_range ),
                            ),
                        )
                    )
                );


                $query = new WP_Query( $args );
ответил Shameem Ali P.K 28 FebruaryEurope/MoscowbWed, 28 Feb 2018 16:21:41 +0300000000pmWed, 28 Feb 2018 16:21:41 +030018 2018, 16:21:41

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132