1

所以今天我写了一个很好的 ol' mod 来按年、按月显示我的帖子存档,然后通过带有 jquery 显示/隐藏功能的帖子显示我注意到一些相当令人沮丧的事情。

我正在使用任何人为此使用的标准代码:

<? $months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date)
    FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
    AND YEAR(post_date) = '".$year."' ORDER BY post_date DESC");
    foreach($months as $month) :
?>

现在烦人的部分......当显示月份时,二月显示为三月!所以月份去一月,三月,三月,四月......

我搜索了 wordpress 文件,看看 March 是否出现在应该写为 February 的任何地方,但一切都很好。当在 wp_query 生成的帖子列表中显示日期时,帖子列表会显示 2 月应该在哪里,应该在哪里。只有在使用上面的代码时,二月才会显示为游行,但会显示二月的帖子,而三月的第二个实例应该会显示游行的帖子。

任何人都知道这到底是怎么回事,甚至更好的是,如何解决它???

编辑:

我发现这是导致问题的代码:

<?php echo date( 'F', mktime(0, 0, 0, $month) );?>

我将代码编辑为:

<?php echo $month;?>

现在它正确显示了月份 NUMBER。我怎样才能让它显示名字?

4

2 回答 2

1

本月的底层 -1。

    <? $months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date)
        FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
        AND YEAR(post_date) = '".$year."' ORDER BY post_date DESC");
        foreach($months as $month) {

           echo $month-1;
       }
    ?>
于 2012-07-31T05:27:02.417 回答
1

对于所有面临这个问题的人:

<? $months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date)
    FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
    AND YEAR(post_date) = '".$year."' ORDER BY post_date DESC");

    foreach($months as $month) :
?>

然后使用设置所有参数的 mktime,并添加 1:

<?php echo date( 'F', mktime(0, 0, 0, $month+1, 0, 0, 0) );?>
于 2012-07-31T07:27:40.243 回答