最新1日分の記事を表示する
- Category: WordPress関係
<?php
global $wpdb;
$limit = 10;
$days = 1;
$request = "SELECT * FROM $wpdb->posts "."WHERE post_status = 'publish' AND post_type = 'post' "."ORDER BY post_date DESC LIMIT $limit";
$posts = $wpdb->get_results($request);
if($posts):
$recent_date = date('Ymd',strtotime($posts[0]->post_date));
foreach ($posts as $post):
$post_date = date('Ymd',strtotime($post->post_date));
if($post_date == $recent_date):
setup_postdata($post);
?>
//記事の表示内容を記述
<?php
endif;
endforeach;
endif;
?>
以下、上の記述の簡単な説明。
- データベースから最新10件 *1の投稿を取得して $posts にぶちこむ
- 最新の記事、すなわち $posts[0] の post_date を strtotime 関数と date 関数を使って「20081210」みたいな形式に変換して変数 $recent_date に格納
- foreach 関数使って $recent_date とその他の投稿データの日付を比較しつつ *2 、$recent_date と同じ日付の投稿データがあったら setup_postdata() したあとで the_title() やら何やらで表示
上記のコードをindex.php辺りに書くと、私のサイトのように最新1日分の記事がトップページに表示される。もっとスマートに出来るんじゃないかなぁ、とか思ったりもするので、各自頑張ってください(謎)。