web-dev-qa-db-ja.com

毎週と毎月の人気記事

私は1週間前と1ヶ月前の人気のある投稿を表示したいです。これらは私が使用したコードですが、これらは1週間前の間は正しく動作しません

<ul>

    <?php
    $week = date('W');
    $year = date('Y');
    query_posts('meta_key=post_views_count&cat='.$link1.'&posts_per_page=9&orderby=meta_value_num&order=DESC&year=' . $year . '&weeknum=' . $week);

    while (have_posts()): the_post(); ?>

    <li>
    <h2><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></h2>
<div style="display:<?php echo $display;?>" class="tooltiptext hidden-xs"><?php the_excerpt(); ?></div>
</li>
    <?php
    endwhile;
    wp_reset_query();
    ?>

    </ul>

1か月前

 <ul>

    <?php
    $month = date('m');
    $year = date('Y');
    query_posts('meta_key=post_views_count&cat='.$link1.'&posts_per_page=9&orderby=meta_value_num&order=DESC&year=' . $year . '&monthnum=' . $month);

    while (have_posts()): the_post(); ?>

       <li>
    <h2><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></h2>
<div style="display:<?php echo $display;?>" class="tooltiptext hidden-xs"><?php the_excerpt(); ?></div>
</li>
    <?php
    endwhile;
    wp_reset_query();
    ?>

    </ul>
1
m.javad Koushki

これらの$argsはあなたが必要とするものであり、あなたはそれをquery_posts()でも使うことができます。

$args = array(
        'post_type'         => array( 'post' ),
        'post_status'       => 'publish',
        'posts_per_page'    => 9,
        'cat'               => $link1, // try better variable name

        'meta_key' => 'post_views_count',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',          

        'date_query' => array(
        array(
          'after' => '1 months ago',
        ),
        )   
);

$r = null;
$r = new WP_Query($args);
// do something with $r = result
wp_reset_postdata();

私はquery_posts()以外の方法であなたに提供しました。ところで、私はあなたが最後にwp_reset_query();を使ったのが好きです。

1
prosti