デイトラでプログラミング始めました

サブクエリで固定ページの子ページを一覧表示

サブクエリとは?WordPressにおける理解を深める

サブクエリの概要

WordPressにおいて、サブクエリとは、メインクエリとは別に、データベースに対して追加の問い合わせを行うことを指します。メインクエリが現在のページで表示されている投稿に関する情報を取得するのに対し、サブクエリは、別の条件で投稿を取得したり、カスタム投稿タイプやタクソノミーの情報を取得したりする際に利用されます。

サブクエリが必要となるケース

  • 親ページの子ページ一覧を表示する:固定ページの子ページ一覧で取得したいとき。
  • サイドバーに関連する投稿を表示する: メインコンテンツとは別に、サイドバーに特定のカテゴリーやタグの投稿を表示したい場合。
  • 関連記事を表示する: 現在の投稿と関連性の高い投稿を自動的に表示したい場合。
  • 人気記事ランキングを表示する: 閲覧数が多い記事をランキング形式で表示したい場合。
  • カスタム投稿タイプやタクソノミーの情報を取得する: 投稿以外にも、カスタム投稿タイプやタクソノミーの情報を取得して表示したい場合。

サブクエリの書き方

サブクエリは、一般的に WP_Query クラスを使用して作成します。

PHP

$args = array( 'post_type' => 'post', 'category_name' =>'お知らせ', 'posts_per_page' => 5,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); // 投稿のタイトルや抜粋を表示する the_title(); the_excerpt(); }
} else { // 投稿が見つからなかった場合の処理
}
wp_reset_postdata();
  • $args 配列に、取得したい投稿の条件を指定します。
  • WP_Query クラスのインスタンスを作成し、$args を渡します。
  • have_posts() メソッドで投稿が存在するかどうかを確認し、the_loop を使用して投稿の情報を表示します。
  • 最後に wp_reset_postdata() でグローバル変数をリセットします。

サブクエリとメインクエリの関係

  • メインクエリ: テンプレートファイルに自動的に設定され、現在のページの投稿に関する情報を取得します。
  • サブクエリ: プログラマーが自由に作成し、特定の条件で投稿を取得します。