如何在CodeIgniter中显示文章存档?

时间:2014-05-11 17:53:10

标签: php codeigniter codeigniter-2 php-5.3

我有一个问题,我还没有找到解决方案。我的博客中有一个存档,如下所示:

May[2014]
  -Title 1 article
May[2014]
  -Title 2 article
April[2014]
  -Title 3 article

但是我想要在同一个月有一篇或多篇文章发表这样的文章:

May[2014]
 -Title 1 article
 -Title 2 article
May[2014]
 Title 3 article

我的代码:

<?php if ($archive): $_month = '0000-00'; ?>
                <?php foreach($archive as $a):?>
                    <div class="archive">
                        <div class="month">
                        <?php if (date('Y-m', strtotime($a['date'])) !== $_month) :?>
                            + <?php echo date('M',strtotime($a['date']))?> [<?php echo date("Y",strtotime($a['date']))?>]
                                <div class="month-article last-article-content">
                                    <span class="most-popular-articles"><img src="<?php echo config_item('base_url');?>assets/images/arrow.png">&nbsp&nbsp<a href="<?php echo base_url('materials/'.$a['id'].'/'.make_permalink($a['title'])).'.html'; ?>"><?php echo ($a['title']) ?></a></span>
                                </div>
                        <?php endif; ?>
                        <?php $_month = date('Y-m',strtotime($a['date'])) ?>
                        </div>
                    </div>
                <?php endforeach; ?>
            <?php endif; ?>

1 个答案:

答案 0 :(得分:0)

$a['date']+1无法正常运作。

您必须创建一个包含上一个日期的变量,假设您的文章按日期排序。

<?php 
$_month = '0000-00';
foreach ($articles as $a) : 

    if (date('Y-m', strtotime($a['date'])) !== $_month) {
        echo date('M',strtotime($a['date']));
    }
    ...

    $_month = date('Y-m', strtotime($a['date']));

endforeach; 
?>