• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/is main query

提供: WordPress Codex 日本語版
移動先: 案内検索

説明

この is_main_query() 関数は条件分岐関数で、現在のクエリー(ループ内など)が「メイン」クエリーかどうかを判断するのに使えます。

この関数は通常フック内で WordPress の「メイン」クエリー(固定ページ、投稿、またはアーカイブ)とカスタム/サブクエリーを区別するために使われます。

is_main_query() はテーマテンプレートやプラグインなどフロントエンドのクエリーにも、管理画面のクエリーにも使うことができます。現在のクエリーがメインクエリーの場合は true が返され、そうでない場合は false が返されます。

使い方

<?php
if ( is_main_query() ) {
    // メインクエリの場合のみ実行する内容を書く
}

仕組み

この関数にはパラメータは指定できません。代わりに、自動的に $wp_query オブジェクト(つまり「現在のクエリ」)と $wp_the_query オブジェクト(「メインクエリ」)を比較してその結果を返します。

この関数は WP_Query::is_main_query() メソッドのエイリアスです。例えば pre_get_posts のような、WP_Query オブジェクトを引き渡すフィルターまたはアクションフックのコールバック内でこの関数を呼び出すのは、回りくどくなります。代わりに、渡されたオブジェクトのメソッドを直接呼び出しましょう。例えば、フィルターコールバックが受け取った WP_Query オブジェクトを $query に割り当てていた場合には、以下のような方法でメソッドを呼び出します。

$query->is_main_query()

なお、if 条件式内での使い方については以下の例をご覧ください。

戻り値

(boolean)
成功した場合は true、そうでない場合は false

用例

add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' );
function foo_modify_query_exclude_category( $query ) {
    if ( ! is_admin() && $query->is_main_query() && ! $query->get( 'cat' ) )
        $query->set( 'cat', '-5' );
}

変更履歴

3.3 以降

ソースファイル

関連項目

記事

コード・ドキュメンテーション

  • クラス: WP_Query - WP_Query クラスの詳細な全容
  • クラス: WP_Comment_Query - コメント関連のクエリのためのクラス
  • クラス: WP_User_Query - ユーザー関連のクエリのためのクラス
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方全容
  • 関数: set_query_var()
  • 関数: get_query_var()
  • 関数: query_posts() - 追加のカスタムクエリを作成
  • 関数: get_post() - 項目の ID を取得しデータベース内にあるその投稿のレコードを返す
  • 関数: get_posts() - 投稿の配列を返すことに特化した関数
  • 関数: get_pages() - ページの配列を返すことに特化した関数
  • 関数: have posts() - クエリが投稿を返すか否かを判断する条件関数
  • 関数: the_post() - クエリ後に自動的にループを設定する
  • 関数: rewind_posts() - 現状のループをリセットする
  • 関数: setup_postdata() - ループ内で個別の結果を得るためのクエリデータを設定する
  • 関数: wp_reset_postdata() - 直前のクエリを復元する (通常はループ内の別のループの後に用いられる)
  • 関数: wp_reset_query()
  • 関数: is_main_query() - 変更されるクエリがメインのクエリであることを確認する
  • アクションフック: pre_get_posts - WordPressクエリが実行される前に変更する
  • アクションフック: the_post - post クエリの後で post オブジェクトを変更する
  • フィルターフック: found_posts - WP_Query オブジェクトの found_posts 値を変更する


条件分岐タグ

条件分岐タグis_404(), is_admin(), is_admin_bar_showing(), is_archive(), is_attachment(), is_author(), is_category(), is_comments_popup(), is_date(), is_day(), is_feed(), is_front_page(), is_home(), is_local_attachment(), is_main_query, /is_multi_author, is_month(), is_new_day(), is_page(), is_page_template(), is_paged(), is_plugin_active(), is_plugin_active_for_network() /en, is_plugin_inactive() /en, is_plugin_page() /en, is_post_type_archive(), is_preview() /en, is_search(), is_single(), is_singular(), is_sticky(), is_tag(), is_tax(), is_taxonomy_hierarchical(), is_time(), is_trackback(), is_year(), in_category(), in_the_loop(), is_active_sidebar(), is_active_widget(), is_blog_installed() /en, is_rtl(), is_dynamic_sidebar(), is_user_logged_in(), has_excerpt(), has_post_thumbnail(), has_tag(), pings_open(), email_exists(), post_type_exists(), taxonomy_exists(), term_exists(), username_exists() /en, wp_attachment_is_image(), wp_script_is()


外部資料

最新英語版: WordPress Codex » Function Reference/is_main_query最新版との差分