この記事は最後に更新してから1年以上経過しています。
説明
WordPressのテーマ作成において、メインの投稿記事とは別に特定の条件を指定した投稿内容を表示することが多々ある。つい最近まで get_posts関数を使用することが多かったのだが、最近はWP_Queryクラスを使用することが多くなってきた。WP_Queryクラスはとても多機能であり、WordPressの投稿記事を検索・表示するための重要なクラスである。このWP_Queryクラスを使用した投稿記事の表示処理は、それほど特別なものではない。例えば'ニュース'というカテゴリーの最新投稿を5件取得する場合は、次のように記述する。
$apart_args = array(
'order' => 'DESC',
'posts_per_page' => 5,
'category_name' => 'ニュース'
);
$apart_posts = new WP_Query( $apart_args );
if ( $apart_posts->have_posts() ) :
// ここに投稿記事を表示する前のの処理を記述
while ( $apart_posts->have_posts() ) : $apart_posts->the_post();
// ここに投稿記事の表示処理を記述
endwhile;
// ここに投稿記事を表示した後の処理を記述
wp_reset_postdata();
else :
// ここで投稿記事が見つからなかった場合の処理を記述
endif;
上記の例は比較的単純な条件なのでget_posts関数でも実現可能だが、より詳細の条件を指定したい場合はget_posts関数では力不足になる。そんな時はこのWP_Queryクラスを使用する方法が適している。サイドバーやフッターなど、ページ中のパーツ要素として投稿記事を取得して表示する場合は、必要に応じてget_posts関数かWP_Queryクラスを使い分ければいい。WP_Queryクラスを使用する方法はそれなりにメモリーを消費しそうなので、サーバー環境を考慮して使い過ぎないように注意したほうがいいだろう。
余談になるが、query_posts関数の実行によってWP_Queryオブジェクトが生成され、グローバル変数$wp_queryに格納される。またhave_posts関数やthe_post関数は、$wp_queryの同名のメソッドを呼び出しているだけである。
最終更新 : 2011年08月01日 18:04
関連
お勧め
home_url(2023年3月31日 更新)
string home_url( [ string $path = '' [ , string $scheme = null ] ] )
現在のブログ(サイト)のホームURLを取得する。ホームURLは、管理者ページの「設定」-「一般」の「サイトのアドレス(URL)」のこと。get_comment_meta(2014年3月9日 更新)
mixed get_comment_meta( int $comment_id [ , string $key = '' [ , bool $single = false ] ] )
コメントメタ情報の値を取得する。
wp_maybe_inline_styles(2025年12月4日 更新)
void wp_maybe_inline_styles()
CSSファイルの追加情報をインライン化する。
next_posts_link(2018年5月27日 更新)
void next_posts_link( [ string $label = 'Next Page »' [ , int $max_page = 0 ] ] )
カテゴリーやタグなどのアーカイブページにおいて、1ページの投稿件数以上の投稿があった場合に次ページへのリンクを表示する。
wp_lazy_loading_enabled(2023年8月11日 更新)
bool wp_lazy_loading_enabled( string $tag_name, string $context )
要素にloading属性を追加するか判定する。