archive.phpで、普通に
<?php single_month_title(); ?>
とすると、12月2009などとなります。
これを、何年何月、なおかつ、日付ぺーじでは何年何月何日と表示させるのに結構戸惑いました。
まず、何年何月何日と表示させるのは、
<?php
if(is_month()){
echo get_query_var(‘year’).’年’.get_query_var(‘monthnum’).’月’;
}else if(is_day()){
echo get_query_var(‘year’).’年’.get_query_var(‘monthnum’).’月’.get_query_var(‘day’).’日’;
}
?>
あるいは、
<?php
if(is_date()){
$title = get_the_time(‘Y’).’年’;
if(is_day() || is_month()) $title .= get_the_time(‘m’).’月’;
if(is_day()) $title .= get_the_time(‘d’).’日’;
echo $title;
}else{
wp_title();
}
?>
で大丈夫。
しかし、問題はこれより上に条件分岐タグがあった場合は、日付が全て同じ、あるいは、0年0月0日となってしまいます。
そこで、まず、
<?php query_posts(‘cat=6 & order=desc & showposts=1′); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
は使わずに
<?php //$newquery = new WP_Query(‘cat=6 &order=desc & showposts=1′);
//if ($newquery->have_posts()): ?>
<?php //while ($newquery->have_posts()) : $newquery->the_post(); ?>
をつかってみたけれども、結果は同じ、
結果、
<?php query_posts(‘cat=6 & order=desc & showposts=1′); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
のあと、ループ終了後に
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
とするとOKでした。
お疲れ様でした。