在wordpress中逐月显示帖子

时间:2016-01-21 08:15:00

标签: wordpress

我想在wordpress中显示当前月份的特定类别的所有帖子。表示它只显示当前月份的此类别中的所有帖子,然后分页显示上个月和下个月。

问题更新 我试过这段代码。 这是按月显示的,但需要一种方法来显示当前月份,然后是下一个月的分页。

    <?php

$blogtime = date('Y');
$prev_limit_year = $blogtime - 1;
$prev_month = '';
$prev_year = '';

$args = array(
         'posts_per_page' => 20,
         'ignore_sticky_posts' => 1,
         'cat' => 1
);

$postsbymonth = new WP_Query($args);

while($postsbymonth->have_posts()) {

    $postsbymonth->the_post();

    if(get_the_time('F') != $prev_month || get_the_time('Y') != $prev_year && get_the_time('Y') == $prev_limit_year) {

                   echo "<h2>".get_the_time('F, Y')."</h2>\n\n";

        }

    ?>

        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>

                <?php // your other template tags ?>


    <?php

    $prev_month = get_the_time('F');
    $prev_year = get_the_time('Y');

}

        ?>

1 个答案:

答案 0 :(得分:0)

你需要像这样使用

current_year = date('Y');
$current_month = date('m');

query_posts( "cat=22&year=$current_year&monthnum=$current_month&order=ASC" );

如果您不需要使用$ query_string变量,则存在另一种更清晰易读的方法

$args = array(
    'cat'      => 22,
    'year'     => $current_year,
    'monthnum' => $current_month,
    'order'    => 'ASC'
);
query_posts( $args );

也请查看此前。

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$today = getdate();
$args = array(
    'category_name' => 'news',
    'year' => $today['year'],
    'monthnum' => $today['mon'],
    'paged' => $paged
);
query_posts($args);
?>

详细信息请点击此链接 http://codex.wordpress.org/Template_Tags/query_posts#Time_Parameters

FOR PREV MONTH POST

$archive_month = date('m', strtotime('1 month ago') );
$archive_year  = date('Y', strtotime('1 month ago') ); 
echo '<a href="' . get_month_link( $archive_year, $archive_month) . '">Last month\'s posts</a>';

按月发布 - 请遵循此 http://codex.wordpress.org/Function_Reference/get_month_link