WEB制作のための情報サイト / unazuki Library

is_main_query()

基本構文と使い方(引数・実行結果)

基本構文

現在のクエリがメインクエリかどうかを判定します。

is_main_query()

引数

なし。

実行結果

戻り値(返す値):真偽値(メインクエリならtrue、そうでなければfalse)

例1.

<?php if (is_main_query()) {
	// メインクエリの場合の処理
} ?>

学習者向け補足情報

参考コード

下記のコードはカスタム投稿タイプnewsのアーカイブページにおいて、1ページあたりの表示件数を8件にするコードです(functions.phpに記述)。2~4行目の処理は、現在の表示画面が管理画面の場合(is_admin())、あるいは現在の処理がメインクエリ以外の場合(! $query->is_main_query())はreturnを返し、即時処理を終了しています。条件がfalseでreturnを返さない場合、5行目以降を実行し、クエリがカスタム投稿タイプnewsのアーカイブページの場合($query->is_post_type_archive('news'))に1ページあたりの表示件数を8件にしています。

<?php
function news_posts($query) {
	if (is_admin() || ! $query->is_main_query()) {
		return;
	}
	if ($query->is_post_type_archive('news')) {
		$query->set('posts_per_page', '8');
		return;
	}
}
add_action('pre_get_posts', 'news_posts');
?>

※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。

関連するテンプレートタグ

テンプレートタグ 説明
is_user_logged_in() ユーザーがWordPressにログインしているかどうかを判定する。
is_paged() リクエストしたページがページングされたページかどうかを判定する。
is_404() 表示するページが404ページかどうかを判定する。
is_search() リクエストしたページが検索結果ページかどうかを判定する。
is_archive() リクエストしたページがアーカイブページかどうかを判定する。
is_day() リクエストしたページが日付別のアーカイブページかどうかを判定する。
is_date() リクエストしたページが年別/月別/日付別のいずれかのアーカイブページかどうかを判定する。
is_month() リクエストしたページが月別アーカイブページかどうかを判定する。
is_year() リクエストしたページが年別アーカイブページかどうかを判定する。
is_author() リクエストしたページが投稿者アーカイブページかどうかを判定する。
is_post_type_archive() リクエストしたページが投稿タイプのアーカイブページかどうかを判定する。
is_tax() リクエストしたページがタクソノミーページ(ターム別記事一覧ページ)かどうかを判定する。
is_tag() リクエストしたページがタグページかどうかを判定する。
is_category() リクエストしたページがカテゴリーページかどうかを判定する。
is_page() リクエストしたページが固定ページかどうかを判定する。
is_singular() リクエストしたページが指定した投稿タイプの個別ページかどうかを判定する。
is_single() リクエストしたページが投稿の個別ページかどうかを判定する。
is_front_page() リクエストしたページがトップページかどうかを判定する。
is_home() リクエストしたページがホームかどうかを判定する。