MENU

get_queried_object_id()– Function –

get_queried_object_id()は、現在のクエリで取得されたオブジェクトのIDを返すテンプレートタグです。

目次

機能の説明

get_queried_object_id()は、WordPressが実行中のクエリから、対象オブジェクト(投稿、タクソノミー、ページなど)のIDを取得します。単一投稿、カテゴリ、タグアーカイブ、カスタム投稿タイプなど、さまざまなクエリで利用でき、現在のコンテキストに応じたオブジェクトのIDを返します。

シンプルなコード例

$id = get_queried_object_id();
echo $id;

このコードは、現在のクエリから取得したオブジェクトIDを取得し、画面に出力します。

使い方の解説

get_queried_object_id()は主に、条件分岐やカスタムクエリを使って特定のIDを取得し、それに基づいて表示内容を変更するために使用します。たとえば、特定のカテゴリページのデザインを変更したいときなどに活用します。

引数

この関数は引数を取りません。

戻り値

int

クエリで取得されたオブジェクトのIDを返します。該当するIDがない場合は0を返します。

オプション

get_queried_object_id()には、オプションはありません。

使用例

if ( is_category() ) {
    $category_id = get_queried_object_id();
    echo 'このカテゴリのIDは: ' . $category_id;
}

if ( is_page() ) {
    $page_id = get_queried_object_id();
    echo 'このページのIDは: ' . $page_id;
}

この例では、現在表示しているカテゴリまたはページのIDを取得し、それぞれのIDを画面に出力します。is_category()is_page()などの条件分岐タグと組み合わせて使うことで、柔軟にIDを取得できます。

一緒に使うことが多い関連タグ

get_the_ID()

get_the_ID()は、現在の投稿やページのIDを取得します。get_queried_object_id()と似ていますが、get_the_ID()はループ内で使用されることが多いです。

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();
        echo 'この投稿のIDは: ' . get_the_ID();
    }
}

このコードは、投稿のループ内で各投稿のIDを取得し、表示します。

get_queried_object()

get_queried_object()は、クエリのオブジェクト全体を取得するための関数です。get_queried_object_id()はそのIDのみを取得するのに対し、get_queried_object()ではオブジェクト全体の情報を得られます。

$obj = get_queried_object();
echo 'オブジェクト名: ' . $obj->name;
echo 'オブジェクトのID: ' . $obj->term_id;

この例では、get_queried_object()を使って取得したオブジェクトの名前とIDを表示しています。カテゴリページやタクソノミーアーカイブで役立ちます。

追加情報を取得したい場合

get_queried_object_id()の結果だけでは不十分な場合、get_queried_object()を使って追加の情報を取得できます。たとえば、カテゴリ名やスラッグなどのタクソノミー情報が必要な場合に便利です。

get_category()で取得できるカテゴリー情報

$category = get_category( get_queried_object_id() );
echo 'カテゴリー名: ' . $category->name;
echo 'カテゴリーのスラッグ: ' . $category->slug;

出力できる情報

  • name: カテゴリー名
  • slug: カテゴリーのスラッグ(URLフレンドリーな名前)

想定されるトラブル

get_queried_object_id()0を返す

クエリの状態が正しくない可能性があります。is_category()is_single()など、適切な条件分岐タグを使っているか確認してください。

タクソノミーや投稿タイプが取得できない

カスタム投稿タイプやタクソノミーの場合、クエリが正しく設定されているか確認します。pre_get_postsフックを使ってカスタマイズすることも検討してください。

Q&A

get_queried_object_id()はどこで使えばいいですか?

アーカイブページやカテゴリページ、単一投稿ページなどで、現在の表示オブジェクトのIDを取得したいときに使います。

ループ内でも使えますか?

はい。ただし、ループ内ではget_the_ID()を使う方が一般的です。

get_queried_object()との違いは何ですか?

get_queried_object()はオブジェクト全体を取得するのに対し、get_queried_object_id()はそのIDだけを取得します。

まとめ

get_queried_object_id()は、現在のクエリで対象となっているオブジェクトのIDを取得するための重要なテンプレートタグです。

カテゴリやページ、カスタム投稿タイプなどのコンテキストに応じて柔軟に使えます。

関連するget_queried_object()get_the_ID()と組み合わせることで、詳細な情報を取得できます。

カスタマイズ例

1