get_posts()

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()はシンプルなクエリを実行するのに便利な関数です。