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_queried_object()
やget_the_ID()
と組み合わせることで、詳細な情報を取得できます。