最新記事のidを返す関数(カテゴリ指定可能)

最新記事のidを取得する関数です。カテゴリidによる指定も可能です。

あるカテゴリの最新idを取得したいと思い、調べているとWordPressフォーラムでバッチリなのが見つかりました。ただしこれは全ての記事の中の最新記事を返すので少し手を加えて使用させていただく事にしました。

以下の関数をテーマファイルのfunctions.phpなんかに定義しておくと便利だと思います。
需要があるかは分かりませんが…。

[php]
function return_latest_id($cat_id=null) {
global $wpdb;

if(empty($cat_id)) {
// 最新記事idの取得
$row = $wpdb->get_row(“SELECT ID FROM $wpdb->posts WHERE post_type = ‘post’ AND post_status = ‘publish’ ORDER BY post_date DESC”);
} else {
// カテゴリを指定した最新記事idの取得
$cat_id = intval($cat_id);
$row = $wpdb->get_row(“SELECT p.ID FROM $wpdb->posts p LEFT JOIN $wpdb->term_relationships r ON p.ID=r.object_id WHERE p.post_type = ‘post’ AND p.post_status = ‘publish’ AND r.term_taxonomy_id = ‘$cat_id’ ORDER BY p.post_date DESC”);
}
return !empty( $row ) ? $row->ID : ‘0’;
}
[/php]

以下のように呼び出せば最新の記事idを取得できます。
カテゴリidを指定すればそのカテゴリ内の最新記事idを返してくれます。

[php]
// 最新記事idの取得
$latest_id = return_latest_id();

// カテゴリを指定して最新記事idを取得
$latest_id = return_latest_id(3);
[/php]