在Wordpress循环中获取当前月份帖子

时间:2015-04-06 06:10:22

标签: php wordpress for-loop foreach

我有我的循环,遗憾的是它只捕获当前月份之前的所有帖子。因此,我最终会在当月(2015年4月)发布未显示的帖子。

如何让循环包含当前月份的帖子?
我的代码:

<?php function the_archive () {
    global $wpdb;
    $limit = 0;
    $year_prev = null;
    $months = $wpdb->get_results("SELECT DISTINCT MONTH( post_date ) AS month , YEAR( post_date ) AS year, COUNT( id ) as post_count FROM $wpdb->posts WHERE post_status = 'publish' and post_date <= now( ) and post_type = 'post' GROUP BY month , year ORDER BY post_date DESC");

    foreach($months as $month) :
        $year_current = $month->year;

        if ($year_current != $year_prev) {
            if ($year_prev != null) {} ?>

            <li class="archive-year">
                <a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/">
                    <?php echo $month->year; ?>
                </a>
            </li>

        <?php } ?>

        <li class="archive-month">
            <a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>/">
                <?php echo date_i18n("F", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>
            </a>
        </li>

        <?php $year_prev = $year_current;
        if(++$limit >= 18) { break; }

    endforeach; 
}
add_shortcode( 'show_archive' , 'the_archive' );
?>

上面输出一个菜单来浏览档案帖子 - 请参阅:http://imgur.com/C4WIiKR&amp; http://codeandco.net/news/

所以我期待看到APRIL的菜单项,但我没有 任何想法?
(提前谢谢: - )

1 个答案:

答案 0 :(得分:0)

所以我想出来了。代码实际上工作正常,但可能由于时区而存在一个小问题(我在猜测)。

当我在澳大利亚时,美国(可能是Wordpress的核心日期可能正在计算)落后于时间。所以我今天发布了我的帖子,即2015年4月6日 - 但它没有出现。

当我将帖子上的发布日期更改为前一天(2015年4月5日)时,它按预期工作,没有任何问题!

这归结为一个简单的事实,即在Wordpress中:您无法发布将来日期的帖子。它们只能“安排”在未来的日期发布。