get_posts()関数の概要
get_posts()
は、WordPressで投稿を取得するためのシンプルな関数です。この関数を使用すると、特定の条件に基づいた投稿の配列を簡単に取得できます。WP_Query
クラスの簡易版として機能し、複雑なクエリを作成する必要がない場合に便利です。get_posts()
はデフォルトで非表示の投稿を含まず、公開されている投稿のみを取得します。
パラメータの説明
get_posts()
関数は、クエリの引数を配列形式で受け取ります。以下に主要なものを示します。
- ‘numberposts’ (整数): 取得する投稿数。デフォルトは5件です。
- ‘category’ (整数): 特定のカテゴリーIDに属する投稿を取得します。
- ‘orderby’ (文字列): 取得する投稿の並び順を指定します。例: ‘date’, ‘title’, ‘rand’ など。デフォルトは ‘date’ です。
- ‘order’ (文字列): 並び順を ‘ASC’(昇順)または ‘DESC’(降順)で指定します。デフォルトは ‘DESC’ です。
- ‘include’ (配列): 特定の投稿IDを含む投稿を取得します。
- ‘exclude’ (配列): 特定の投稿IDを除外する投稿を取得します。
- ‘meta_key’ (文字列): メタキーに基づいて投稿をフィルタリングします。
- ‘meta_value’ (文字列): メタバリューに基づいて投稿をフィルタリングします。
- ‘post_type’ (文字列または配列): 取得する投稿の種類。デフォルトは ‘post’ です。
- ‘suppress_filters’ (ブール値): クエリフィルターを無効にするかどうか。デフォルトはtrueです。
使用例
以下の例では、get_posts()
を使用して、カテゴリーIDが3の投稿を5件取得し、それぞれの投稿タイトルを表示しています。
$args = array(
'numberposts' => 5,
'category' => 3,
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post'
);
$recent_posts = get_posts($args);
foreach ($recent_posts as $post) {
setup_postdata($post);
?>
<h2><?php the_title(); ?></h2>
<div><?php the_excerpt(); ?></div>
<?php
}
wp_reset_postdata();
この例では、カテゴリーIDが3の最新の投稿5件が取得され、それぞれの投稿タイトルと抜粋が表示されます。setup_postdata()
関数は、各投稿データをグローバルな投稿データに設定し、wp_reset_postdata()
関数は、グローバルな投稿データをリセットして元のクエリに戻します。
関連する関数
- WP_Query: 新しいクエリを作成するためのクラス。複雑なクエリを実行するために使用します。
- query_posts(): メインクエリをカスタマイズしますが、推奨されていません。
- get_post(): 特定の投稿IDに基づいて単一の投稿を取得します。
- wp_reset_postdata():
get_posts()
やWP_Query
の後にグローバルな投稿データをリセットします。
これらの関数を理解することで、WordPressでのデータ取得がより効果的に行え、テーマやプラグインのカスタマイズが柔軟に行えます。get_posts()
はシンプルなクエリを実行するのに便利な関数です。