JSON-LDで構造化データのマークアップをしようとあれこれしていたのですが、アーカイブページのマークアップで少しつまづいたので忘備録として書いていこうかと思います。
アーカイブページの情報をどうやって取得する?
構造化データのマークアップをするにあたり、まず投稿ページから着手しました。
投稿ページに関しては「投稿ID」や「タイトル」といった情報を何ら労することなく取得できたので、サクサクと作業を進めることができたのです。ですが…カテゴリーやタグといったアーカイブページに関してはそうはいきませんでした。
なぜかというと、現在表示されているアーカイブページの情報を取得する方法をド忘れてしまったからです…
いや~参りました…とにかくアーカイブページの情報を取得するにはどうすればいいか調べたらすぐに分かるだろうと思っていたのですが、様々なキーワードで検索しても出てくる情報が「投稿ページに紐づけられているカテゴリー」を取得するための情報が多く、なかなかこちらが意図した情報を得ることができません。
ただ、諦めずに色々と調べるとアーカイブページの情報を取得する方法が見つかりました。
救世主はget_query_var
アーカイブページの情報を取得する方法ありました。
get_query_var()
これを使えば「カテゴリーID」や「タグID」といった情報が取得できます。ページネーション(ページ送り)関連のカスタマイズをした時なんかにあれだけ使っていたのに何で忘れるんですかね…
ちなみに、今回get_query_var()
はこのような形で使っています。
//カテゴリーIDを取得
get_query_var('cat');
//タグIDを取得
get_query_var('tag_id');
分かってしまえば何でこんなことで…とガックリきてしまいました。まあ、もうおそらくはド忘れすることはないでしょう。たぶん…
get_queried_objectでも情報が取得できる
ここから追記です。
アーカイブページの情報を取得するためにget_query_var()
を使用することで事なきを得たのですが、その後、パンくずリストを設置しようと少し調べていたら、別の方法でも情報を取得することができることが判明しました。
get_queried_object()
こんな感じで使用することができます。
$cat_info = get_queried_object();
// IDの取得
$cat_id = $cat_info->term_id;
// カテゴリー名の取得
$cat_name = $cat_info->name;
// スラッグの取得
$cat_slug = $cat_info->slug;
上記の方法でカテゴリーページだけでなくタグ・タクソノミーの情報も取得できるようになっています。また、カテゴリーページ以外にも投稿ページや固定ページの情報を取得することもできます。
$post_info = get_queried_object();
// 投稿IDの取得
$post_id = $post_info->ID;
// 記事タイトルの取得
$post_title = $post_info->post_title;
// 記事本文
$post_content = $post_info->post_content;
上記は投稿ページ(single.php)で使用することを想定したものですが、このような形で各種情報を取得できるというわけです。
何の情報を取得するかや、どの場面で情報を取得するかなどでget_query_var()とget_queried_object()を上手く使い分ければいいのかなという感じです。