显示所有月份的帖子,每个月内显示5个最新帖子

时间:2012-07-10 作者:user990717

我需要显示所有有活动帖子的月份,在每个月内,我需要显示至少5个与每个月相关的帖子。。HTML将如下所示:

新闻项目

<h6>May</h6>
<ul>
    <li><a href="#">Souvlaki ignitus carborundum</a></li>
    <li><a href="#">Defacto lingo est igpay atinlay</a></li>
    <li><a href="#">Quote meon an estimate</a></li>
    <li><a href="#">Souvlaki ignitus carborundum</a></li>
    <li><a href="#">Defacto lingo est igpay atinlay</a></li>
    <li><a href="#">Quote meon an estimate</a></li>
</ul>
<h6>April:</h6>
<ul>
    <li><a href="#">Sic tempus fugit esperanto hiccup</a></li>
    <li><a href="#">Epsum factorial non deposit</a></li>
</ul>
我不知道该怎么做,或者使用什么函数。。如有任何帮助/指示,将不胜感激。

2 个回复
最合适的回答,由SO网友:Michael 整理而成

一种可能性是通过循环运行所有帖子,并且每个新月份只输出一次该月:

<?php       
$counter = 0;
$ref_month = \'\';
$monthly = new WP_Query(array(\'posts_per_page\' => -1));
if( $monthly->have_posts() ) : while( $monthly->have_posts() ) : $monthly->the_post();

    if( get_the_date(\'mY\') != $ref_month ) { 
        if( $ref_month ) echo "\\n".\'</ul>\';
        echo "\\n".\'<h6>\'.get_the_date(\'F\').\'</h6>\';
        echo "\\n".\'<ul>\';
        $ref_month = get_the_date(\'mY\');
        $counter = 0;
    }

if( $counter++ < 5 ) echo "\\n".\'   <li><a href=\'.get_permalink($post->ID).\'>\'.get_the_title($post->ID).\'</a></li>\';

endwhile; 
echo "\\n".\'</ul>\';
endif; 
?>

SO网友:haris

以下是Michael提供的解决方案的更具可读性的版本

<?php       
$posts = new WP_Query(array(\'posts_per_page\' => -1));
if ($posts->have_posts()): ?>
<ul id="archives">
    <?php 
    $prev_month = \'\';
    while ($posts->have_posts()): $posts->the_post();
    if (get_the_date(\'F Y\') != $prev_month): 
        $prev_month = get_the_date(\'F Y\'); ?>
    <li class="month"><?= $prev_month; ?></li>
    <?php endif; ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile; ?>
</ul>
<?php endif; ?>

结束

相关推荐

Change posts URL

Possible Duplicate:Permalink: postname EXCEPT for blog 我已经同意将我的网站转换为wordpress,并使用了索引。php作为主页和博客。php(博客帖子的模板),但当我创建任何新帖子时,它会生成类似permalink的页面,例如。。。http://www.domain.com/post-name 而不是http://www.domain.com/blog/post-1你能帮助我如何为所有博客帖子分配/写博客吗。谢谢你的帮助。