1. TOP
  2. BLOG

BOKUSAI-BLOG

墨とWEBを愉しげに必死で追いかけるブログ

現在日時をもとに最新記事一覧を表示する

またまた私用メモです。

現在の日付をもとに、最新記事一覧を表示させる方法:
例)現在が2011年7月だったとする→2011年7月のカテゴリAの記事一覧を全件表示する
<?php query_posts('&category_name=カテゴリ名&showposts=-1&year=' . date('Y', current_time( 'timestamp' )). '&monthnum=' . date('n', current_time( 'timestamp' ))); ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
表示させたい記事内容
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

固定ページでのnext_posts_link/previous_posts_link

それはそれはアホなのかというくらい上記でよくつまづく残念な私用メモ:

全力で助けてもらったフォーラム記事:
http://ja.forums.wordpress.org/topic/5946

実際引用させてもらったコード:
<?php 
        $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
         query_posts('&category_name=カテゴリ名&posts_per_page=表示数&paged=' . $paged); 
?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
表示したい記事内容
<?php endwhile; endif; ?>

<div class="prevnext">
<p class="new"><?php  previous_posts_link('« NEW'); ?></p>
<p class="old"><?php  next_posts_link('OLD »'); ?></p>
</div>
<?php wp_reset_query(); ?>

指定したカテゴリ&特定月の投稿記事一覧を表示

指定した月、というよりも…
正しくは現在のページの記事の投稿日付をget_the_date()で取得して、それをquery_posts()に渡して投稿記事一覧を表示するというやり方。
もちろんもっとスマートなやり方が他にあるかもしれないので参考程度に。

更新履歴ページなんかに使えるかも。
うちの更新履歴ページでも使ってます。(http://ukiyodog.com/bokusai/history)
以下は表示したい記事カテゴリを指定して、更に現在表示されているページに投稿されている記事の年月を取得→showpostsに-1を指定して全件表示させています。
<?php 
	$postsYear= (int)get_the_date('Y');
	$postsMonth= (int)get_the_date('m');
	query_posts('cat=カテゴリID&year='. $postsYear. '&monthnum='. $postsMonth. 'showposts=-1'); 
?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
表示する内容
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

キャストはただの私のメモ代わりです笑。何やってるかわからなくなるのだよ!
もとは会社でC言語だけを学んだプログラミング初心者なので、型を意識しなくていいというのが非常に気持ちわるいくてつい…。

どうでもいい余談はともかく、
query_postsの引数yearとmonthnumに数値を渡してやれば、指定した月の記事一覧は簡単。公式リファレンスにも例のってました。
でもアーカイブのページテンプレートでは、渡す数値は可変にしたかった末の苦肉の策です。

どうでもいいけど、カテゴリ指定ってみんなIDでしてるのはなんで…?
私はcategory_name=カテゴリ名(スラッグ)で指定してます。ちゃんと名称管理すればID変わっても対応可能じゃない?そういうもんじゃないの?
わからんなあ…WPいじりまくるような会社に入りたいです。切実。