ワードプレスのget_queried_object関数の使用方法・解説

概要

get_queried_object関数は、現在のクエリに基づいて、ページリクエストにマッチした情報を取得するために使用される関数です。この関数は、さまざまなWordPressのコンテキストで役立ちます。以下は、get_queried_object関数がどのような機能を実装する際によく使われる例です。

  1. カスタム投稿タイプの詳細を取得する
  2. 特定のターム情報(例:カテゴリーやタグ)を取得する
  3. 複数のクエリ条件に基づくオブジェクト情報を取得する
  4. 現在表示している作者の情報を取得する
  5. 固定ページの詳細を取得する
  6. 投稿が属するカテゴリーリストを取得する
  7. WooCommerceの製品詳細を取得する
  8. ショートコード内で現在の投稿情報を取得する

この関数は、主に以下のようなコンテキストで使用されます。

  • 投稿、ページ、ターム、ユーザーなどの詳細情報を取得する必要がある場合。
  • テンプレートファイル内で現在のクエリの情報を操作する際。

構文

get_queried_object();

パラメータ

この関数は、パラメータを受け取らない仕様です。

戻り値

  • クエリされたオブジェクトの情報が含まれたオブジェクト(例: WP_Post, WP_Term, WP_Userなど)
  • 該当するオブジェクトがない場合は null が返される。

関連する関数

使用可能なバージョン

この関数は、WordPress 3.1.0 以降で使用可能です。

コアファイルのパス

wp-includes/query.php

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

この関数は特定のバージョンで非推奨や削除された例はありません。

サンプルコード

サンプルコード 1: カスタム投稿タイプの取得

if ( is_singular( 'custom_post_type' ) ) {
    $queried_object = get_queried_object();
    echo 'Current post title: ' . $queried_object->post_title;
}

このコードは、現在のクエリがカスタム投稿タイプであれば、その投稿のタイトルを表示します。

サンプルコード 2: タームの詳細取得

if ( is_tax() ) {
    $queried_term = get_queried_object();
    echo 'Current term name: ' . $queried_term->name;
}

このコードは、現在のクエリがタームのものであれば、そのタームの名前を表示します。

サンプルコード 3: 現在のユーザー情報の取得

if ( is_author() ) {
    $queried_user = get_queried_object();
    echo 'Current author: ' . $queried_user->display_name;
}

このコードは、現在のクエリが著者のものであれば、その著者の表示名を表示します。

サンプルコード 4: 固定ページ情報の表示

if ( is_page() ) {
    $queried_object = get_queried_object();
    echo 'Current page content: ' . $queried_object->post_content;
}

このコードでは、現在表示されている固定ページの内容を取得し、表示します。

サンプルコード 5: 複数の投稿条件のフィルタリング

add_action( 'pre_get_posts', function( $query ) {
    if ( $query->is_main_query() && !is_admin() ) {
        $post_object = get_queried_object();
        // 何かの条件に基づいて投稿取得を変更
    }
});

このコードは、メインクエリに対して特定の条件に基づくフィルタリングを行うためにget_queried_objectを使用しています。

この関数について質問する


上の計算式の答えを入力してください