Sponsored Link
[WordPress]WordPress 基礎【逆引き】
テンプレートファイル
WordPressはヘッダーやフッター、サイドバー等々、部品別にphpファイルを読み込みを行うことが出来ます。
固定されたレイアウトの場合、各ページで流用することが出来ます。
さて、各テンプレートでどのようなファイルが必要かを見ていきます。
index.php
必ず必要なファイルです。
WordPressは、最終的にこのファイルを呼び出します。
なので、最悪このファイルにコードを書けばHPを作成できます。
single.php
個別記事を表示させるファイルです。
記事の続きを見るとかで、個別記事を見る場合にこのテンプレートファイルが呼び出されます。
page.php
固定ページを記載します。
header.php
ヘッダーを記載します。
footer.php
フッターを記載します。
sidebar.php
サイドバーを記載します。
searchform.php
検索フォームを記載します。
comments.php
コメントを記載します。
テンプレートインクルードタグ
WordPressにはテンプレートファイルを呼び出すメソッドが用意されています。
そのメソッドをインクルードタグと呼びます。
数はそこまで多くないので、覚えちゃいましょう。
get_header()
header.phpを読み込みます。
get_footer()
footer.phpを読み込みます。
get_sidebar()
sidebar.phpを読み込みます。
get_template_part()
任意のテンプレートファイルを読み込みます。
sample.php
というテンプレートファイルを作成した場合、get_template_part('sample')
と記載します。
sampleがスラッグ名となり、それに付随した個別パーツを使用する場合は、第二引数に名前を指定します。
例えば、sample-table.php
というテンプレートファイルを作成した場合、
sampleというスラッグにtableという個別パーツが指定できます。
get_template_part('sample', 'table')
ちなみに、ヘッダー・フッター・サイドバーは読み込みません。
【WordPress】任意のテンプレートパーツを読み込む関数[get_template_part() ;]の使い方。 – ONZE
get_search_form()
searchform.phpを読み込みます。
functions.php
オリジナルテーマを作成するにあたり、避けては通れないファイルです。
パンくずを作成したり、カスタム投稿タイプを作成したり、オリジナル関数を作成したり…
まだまだたくさんの事が出来ますが、WordPressをいじるのであれば必ず触ります。
グローバル変数
WP固有のグローバル変数です。
グローバル変数
詳しい方でしたらいいと思うのですが、
個人的にはグローバル変数は極力使用しないほうがいいと思ってます。
誤って書き換えてしまう可能性があるので、WPで用意されている関数で取得した方が誤りが起こりにくいと思います。
関数
get_category($category[, $output[, $filter]])
get_queried_object()
現在の表示ページのオブジェクトを取得します。
- 単一投稿ページを表示中なら、投稿オブジェクト。
- 定ページを表示中なら、固定ページのオブジェクト。
- カテゴリーアーカイブを表示中なら、カテゴリーオブジェクト。
- 投稿者アーカイブを表示中なら、投稿者オブジェクト。
get_ancestors()
comments_template()
comments.phpを読み込みます。
参考
調べた関数
is_singular()
=> is_single(), is_attachment(), is_page()
のいずれかがTrueであれば、Trueを返す。
is_single()
=> 個別投稿ページ(または添付ファイルページ・カスタム投稿タイプの個別ページ)が表示されている場合 True を返す。
is_attachment()
=> 添付が表示されていればTrueを返す。
is_page()
=> 固定ページが表示されている場合 True を返す。
is_admin()
=> ダッシュボードまたは管理パネルが表示されていればTrueを返す。
is_home()
=> 管理ページ上で、最新投稿ページ
, 固定ページの投稿ページ
が指定されているページに適用します。
is_front_page()
=> 管理ページ上で、最新投稿ページ
, 固定ページのフロントページ
が指定されているページに適用します。
is_date()
=> 日付アーカイブであればtrue
is_day()
=> 日別アーカイブであればtrue
is_month()
=> 月別アーカイブであればtrue
is_year()
=> 年別アーカイブであればtrue
get_day_link($year, $month, $day)
=> 日別アーカイブのパーマリンク
get_month_link($year, $month)
=> 月別アーカイブのパーマリンク
get_year_link($year)
=> 年別アーカイブのパーマリンク
wp_enqueue_script( “comment-reply” )
WordPress のコメント欄で必要になる JavaScript ファイルを読み込みます。
読み込むファイルはcomment-reply.js
です。
これは、コメントを返信する際、「返信」リンクをクリックしますが、クリックするとコメントフォームがすぐ下に移動してきます。
このファイルが読み込まれない場合、コメントフォームが移動されません。
wp_head()
状況に応じて必要なコードを自動で出力するために必要な記述です。
例えばプラグインなどを使ったとき、そのスタイルシートのリンクを出力したりするのに必要な記述です。
have_posts()
投稿があるか真偽値を返す
the_post()
the_ID()
現在の記事のIDを返します。
ループ中に使用します。
post_class()
投稿ページによってclassを自動で生成します。
詳細は公式ドキュメント参照して下さい。
post_class
the_title()
現在の記事のタイトルを返します。
ループ中に使用します。
構文
the_title([$before[, $after[ , $view]]])
- $before
タイトルの前に付けるテキストを指定します。(初期値:管理画面上(設定 > 一般 > 日付のフォーマット)で指定した形式)
フォーマットはこちら を参考にして下さい。 - $after
タイトルの後に付けるテキストを指定します。(初期値:なし) - $view
タイトルを表示するかを真偽値で指定します。(初期値:True)
ループじゃない時に指定する際は、get_the_title( $ID )メソッド を使用します。
the_permalink()
記事のパーマネントリンク(URL)を返します。
ループ中に使用します。
ループじゃない時に使用する際は、get_permalink( $id, $leavename )メソッド を使用します。
the_date()
記事の投稿日時を返します。
ループ中に使用します。
構文
the_date([$format[, $before[, $after[, $echo]]]])
- $format
日時の出力形式(フォーマット)を指定します。 - $before
投稿/更新日の直前に出力するコードやテキストを指定します。(初期値:なし) - $after
投稿/更新日の直後に出力するコードやテキストを指定します。(初期値:なし) - $echo
Trueを指定で日付をページ表示します。
Falseを指定でPHPで使用できる値として日付を返します。(初期値:True)
同じ日に複数の投稿があった場合は、最初の投稿だけが一度だけ出力されます。
全ての投稿に日付を出力させたい場合はget_the_date() を使用して下さい。
the_category()
記事のカテゴリを表示します。
ループ中に使用します。
構文
the_category([$separator[, $parents[, $post_id]]])
- $separator
複数のカテゴリが登録されている際の区切り文字を指定します。
初期値では、カテゴリ全体をul
で囲い、各々をli
で並べます。 - $parents
子カテゴリ(サブカテゴリ)が登録されていた場合、親カテゴリの表示方法を指定します。
初期値では、子カテゴリのみを表示させます。- multiple
親子カテゴリのリンクを別々に表示させます。 - single
子カテゴリのリンクを表示させます。(見た目は親/子になります)
- multiple
- $post_id
カテゴリを取得する投稿のIDを整数値で指定します。
初期値はFalse で現在の投稿についているカテゴリリストとなります。
the_tags()
記事のタグを表示します。
ループ中に使用します。
構文
the_tags([$before[, $separator[, $after]]])
- $before
タグ一覧の前に表示するテキストを指定します。(初期値: Tags:) - $separator
複数のカテゴリが登録されている際の区切り文字を指定します。(初期値: ,) - $after
タグ一覧の後に表示するテキストを指定します。(初期値: なし)
the_author()
記事の投稿者の名前を表示します。
ループ中に使用します。
引数はありません。
get_author_posts_url()
投稿者のアーカイブ(投稿記事一覧)のURLを返します。
構文
get_author_posts_url($author_id[, $author_nicename])
- $author_id
投稿者のidを指定します。 - $author_nicename
投稿者のスラッグを指定します。(初期値: なし)
省略された場合、$author_idの著者情報を取得し、そのスラッグが適用されます。
指定された場合、それがそのままURLのスラッグに適用されます。
get_the_author_meta()
投稿者のメタデータを取得します。
構文
get_the_author_meta( $field, $userID )
- $field
取得するデータのフィールド名を記載します。 - $userID
投稿者のIDを指定します。
ループ中であれば省略可能です。(現在の投稿者IDが入ります)
フィールド名の有効な値については、公式を参照してください。
get_the_author_meta
comments_popup_link()
コメント数を表示
構文
comments_popup_link([$zero[, $one[, $more[, $css_class[, $none]]]]])
- $zero
コメント数が0の時に表示するテキストを指定します。(初期値: No Comments) - $one
コメント数が1の時に表示するテキストを指定します。(初期値: 1 Comments) - $more
コメント数が2以上の時に表示するテキストを指定します。
%
で現在のコメント数に書き換えられます。(初期値: % Comments) - $css_class
コメントのa要素にclassを指定します。(初期値: なし) - $none
コメントを受け付けていない場合に表示するテキストです。(初期値: Comments Off)
the_content()
コンテンツ(画像含む)、続きを読むのリンクを表示
ループ中に使用します。
構文
the_content( $more_link_text, $stripteaser )
- $more_link_text
以降を読むためのリンクとして表示するテキストを指定します。(初期値: more…) - $stripteaser
以前の内容を隠すかどうかを真偽値で指定します。(初期値: False(全文表示))
ページャーを作る
いくつかのパターンがありますので、順に説明していきます。
個別記事に対してのページャー
ブログとかで、次回の記事とか前回の記事へのリンクを付ける方法です。
個別投稿ページですので、基本single.php
か index.php
を使用するのかなと思います。
htmlタグは必要であれば自由に書き換えて下さい。
single.phpに直接記載する場合
<div class="post_pager">
<span id="prev">
<?php
if(get_previous_post()) {
// 以前の投稿があればリンク
previous_post_link('%link', '« %title');
} else {
// 過去に投稿がない場合はテキスト
echo '最初の投稿です';
} ?>
</span>
<span id="next">
<?php
if(get_next_post()) {
// 以降の投稿があればリンク
next_post_link('%link', '%title »');
} else {
// 以降に投稿がない場合はテキスト
echo '最新の投稿です';
} ?>
</span>
</div>
解説
get_previous_post([$in_same_term[, $excluded_terms[, $taxonomy]]])
現在の投稿に隣接している前の投稿を取得します。
取得出来た場合、WP_Postオブジェクトが返ります。
投稿が存在しない場合、空文字列が返ります。それ以外はNULLが返ります。
構文
- $in_same_term
現在の投稿と同様のタクソノミー・タームの投稿に限定するかを指定します。(初期値: false)
trueにすると現在のタクソノミー・タームがついた投稿を表示します。
平たくいうと、現在の投稿記事と同じカテゴリIDの記事を表示させます。 - $excluded_terms
表示させないタームID(カテゴリID)を指定します。複数ある場合は、配列指定するかカンマ区切りで指定します。(初期値: なし) - $taxonomy
タクソノミーを指定します。これは第三引数がtrueの場合にのみ有効です。(初期値: category)
get_next_post([$in_same_term[, $excluded_terms[, $taxonomy]]])
現在の投稿に隣接している次の投稿を取得します。
構文は、前項のget_previous_post
となので、省略します。
next_post_link([$format[, $link[, $in_same_term[, $excluded_terms[, $taxonomy]]]]]])
現在の投稿の日付から一つ後の投稿へのリンクを表示します
構文
- $format
リンクの前後に表示する文字列を設定します。%link
と表記すると、第二引数に置き換えられます。(初期値: %link »)
→ %link ←
と記載したならば、→ <a href="...">...</a> ←
となります。
htmlタグも使用可能です。 - $link
表示するテキストを設定します。%title
で一つ前の投稿タイトルを取得します。(初期値: %title) - $in_same_term
現在の投稿と同様のタクソノミー・タームの投稿に限定するかを指定します。(初期値: false)
trueにすると現在のタクソノミー・タームがついた投稿を表示します。
平たくいうと、現在の投稿記事と同じカテゴリIDの記事を表示させます。 - $excluded_terms
表示させないタームID(カテゴリID)を指定します。複数ある場合は、配列指定するかカンマ区切りで指定します。(初期値: なし)
Ex.1)next_post_link('%link%', '%title%, true, array(1, 5))
Ex.2)next_post_link('%link%', '%title%, true, '1, 5')
- $taxonomy
タクソノミーを指定します。これは第三引数がtrueの場合にのみ有効です。(初期値: category)
previous_post_link([$format[, $link[, $in_same_term[, $excluded_terms[, $taxonomy]]]]]])
現在の投稿の日付から一つ前の投稿へのリンクを表示します
構文
- $format
基本はnext_post_link
と同様です。初期値のみ違います。(初期値: « %link) - $link
表示するテキストを設定します。%title
で次の投稿タイトルを取得します。(初期値: %title) - $in_same_term
next_post_link
と同様です。 - $excluded_terms
next_post_link
と同様です。 - $taxonomy
next_post_link
と同様です。
Ex)functions.phpに記載する場合
<?php
// functions.php
function single_pager() {
// $prev = get_adjacent_post(false, '', true);
// $next = get_adjacent_post(false, '', false);
$prev = get_previous_post();
$next = get_next_post();
$tag = '<div class="post-navi">';
$tag .= $prev ? '<span id="prev"><a href="' . get_permalink($prev->ID) . '">« ' . get_the_title($prev->ID) . '</a></span>' : '<span id="prev">最初の投稿です</span>';
$tag .= $next ? '<span id="prev"><a href="' . get_permalink($next->ID) . '">' . get_the_title($next->ID) . ' »</a></span>' : '<span id="next">最新の投稿です</span>';
$tag .= '</div>';
echo $tag;
}
リンクの部分をそれぞれ記載していますが、previous_post_link()
, next_post_link()
を使用してしまうと、タグ表示位置が崩れるためこうしています。
恐らく呼び出されるタイミングだと思っているのですが、未検証のため何故崩れるのかは不明です。
「次へ」と「前へ」の二つを設置する
テンプレートファイルにそのまま書き込む
single.php
やarchive.php
、index.php
などに直接書いていく方法です。
固定ページ以外(page.php) の場合
<?php
get_adjacent_post(false, ”, false);
固定ページ
get_previous_post()
get_next_post()
でも固定ページの取得は可能ですが、投稿時間順で取得されてしまうため、
固定ページにおいては、意図した結果にならない場合がある。
個別投稿ページについては、この関数でいいと思います。
wp_query
WP Query
$max_num_pages
プロパティを使用します。
$max_num_pages
ページの合計数を返します。
next_posts_link()
現在のクエリ内で、投稿の次のセットへのリンクを表示します。
構文
next_posts_link([$label[, $max_pages]])
- $label
リンクのテキストを指定します。(初期値: Next Page ») - $max_pages
リンクを表示するページ番号の上限を指定します(初期値: 0 ※上限なし)
previous_posts_link()
現在のクエリ内で、投稿の一つ前のセットへのリンクを表示します。
構文
previous_posts_link([$label])
- $label
リンクのテキストを指定します。(初期値: « Previous Page)
<?php
// ページが複数存在するか確認
if ($wp_query->max_num_pages > 1) {
$tag = '<div class="navigation">';
$tag .= '<div class="alignleft">' . next_posts_link('« PREV') . '</div>';
$tag .= '<div class="alignright">' . previous_posts_link('NEXT »') . '</div>';
$tag .= '</div>';
}
投稿クエリは日付の逆順にソートされるのが普通です。
そのため通常は、next_posts_link() が古い投稿(セットの終わり方向)を指し、previous_posts_link() が新しい投稿(セットの始まり方向)を指します。
have_comments()
ループで処理するコメントがあるかを真偽値で返します。
wp_list_comments()
投稿や固定ページのコメントを表示します。
構文
wp_list_comments([$args[, $comments]])
- $args
コメントリストのタグや、アバターの画像サイズ等、各オプションを配列で設定します。
指定するオプションが一つの場合、文字列として指定が可能です。 - $comments
comment_form()
コメントフォームを出力します。
構文
comment_form([$args[, $post_id]])
- $args
コメントフォーム内のオプションを配列で設定します。
(初期値: Option 一覧 - $post_id
投稿を指定します。Nullが指定されている場合は、現在の投稿を使用するフォームを生成する投稿IDを生成します。(初期値: Null)
機能を追加する
まず、functions.php
というファイルを、テーマフォルダに保存します。
このファイルはテーマ内で利用する機能を設定するファイルです。
Widget
Widget機能を追加するには、下記のコードを入力します。
関数名は任意のもので大丈夫です。
'サイドバーウィジット-1',
'id' =>'sidebar-1',
'description' => 'サイドバーのウィジットエリアです。',
'before_widget' => '
',
)
);
}
add_action( 'widgets_init', 'simplesimple_widgets_init' );
### カスタムメニュー
外観 > メニュー
より、管理画面上でカスタムしたメニューを表示出来るように設定します。
“`php
<?php
// カスタムメニューの有効化
add_theme_support('menus');
// カスタムメニューのIDと名称を設定
register_nav_menu('header-navi', 'ヘッダーのナビゲーション');
register_nav_menu('footer-navi', 'フッターのナビゲーション');
“`
#### register_nav_menu()
#### wp_nav_menu()
### サイドバーを設定する
外観 > ウィジェット で登録したサイドバーウィジェットを表示させます。
#### dynamic_sidebar()
Widgetで登録したサイドバーを表示します。
##### 構文
`dynamic_sidebar( $index )`
1. $index
Widgetで登録したサイドバーの名前 もしくは ID番号を記載します。
#### is_active_sidebar()
サイドバーが有効化されているかを調べます。
##### 構文
`is_active_sidebar( $index )`
1. $index
Widgetで登録したサイドバーの名前 もしくは ID番号を記載します。
## header
ページタイトルを設定します。
これまでは、wp_titleをtitleタグに入れてましたが、
今後は、functions.php内で設定するのが推奨になると思われます。
### add_theme_support(‘title-tag’)
`functions.php`内に、この関数を入力すれば、`wp_head()`時にtitleが設定されます。
デフォルトでは、下記の記載となります。
– トップページ
サイト名 – キャッチフレーズ
– その他のページ
ページに沿った名称 – サイト名
また、wp_title同様カスタマイズも可能です。
“`php
<?php
/*——————————
デフォルトで使用
——————————*/
add_theme_support('title-tag');
/*——————————
区切り文字を"|"にする
——————————*/
function custom_ttl_sep($sep) {
$sep = '|';
return $sep;
}
add_filter('document_title_separator', 'custom_ttl_sep'); // 第二引数の関数名は好きに変更可能です。
add_theme_support('title-tag');
/*——————————
タイトルを変更する
——————————*/
function custom_ttl($title) {
$title = 'hogehoge';
return $title;
}
add_filter('pre_get_document_title', 'custom_ttl');
add_theme_support('title-tag');
/*——————————
パーツごとにタイトルを変更する
——————————*/
function custom_ttl_parts($parts) {
// ページタイトル(左側に表示される箇所)
$parts['title'] = 'My Home Page';
// ページ番号
$parts['page'] = 'Page Number';
// キャッチフレーズ(サブタイトル)
// トップページの右側に表示される箇所
$parts['tagline'] = 'Sub Title';
// サイト名(通常右側に表示される箇所)
// トップページではtitleに該当されるため、一番右側に表示される。
$parts['site'] = 'Site Name'
return $parts;
}
add_filter('document_title_parts', 'custom_ttl_parts');
add_theme_support('title-tag');
“`
実際、パーツごとの変更で使用するのは`title`か`site`くらいなもんじゃないかなーとは思います。
**補足**
h1タグでページタイトルを入れたい場合です。
`wp_get_document_title()`関数でタイトルを取得することが可能です。
デフォルトですと、サブタイトルも含まれてしまいますので、
`add_theme_support(‘title-tag’)`の`document_title_parts`で出力する内容を調整します。
“`php
<?php
// functions.php
function custom_ttl_parts($parts) {
$parts['tagline'] = '';
return $parts;
}
add_filter('document_title_parts', 'custom_ttl_parts');
add_theme_support('title-tag');
“`
“`php
<!– トップページ –>
<h1><?php echo wp_get_document_title(); ?></h1>
“`
これで、h1の中にはサブタイトルがない状態で表示されます。
しかし、titleもサブタイトルが抜けてます。
titleにはサブタイトルを入れたいが、h1では抜きたい場合の方法も紹介します。
“`php
<?php
// functions.php
function custom_ttl_parts($parts) {
if(!doing_action('wp_head')) $parts['tagline'] = '';
return $parts;
}
add_filter('document_title_parts', 'custom_ttl_parts');
add_theme_support('title-tag');
“`
トップページは同じなので割愛。
functions.phpに`!doing_action(‘wp_head’)`を記載することで実現できます。
`doing_action()`は、指定した関数が実行されているかどうかを真偽値で返します。
今回のケースでいうと、`wp_head`が実行されている場合は`tagline`をデフォルトで表示
実行されていない場合は、空欄で表示するようになります。
関数の実行タイミングが分かっている必要がありますが、
色々と使えそうな関数ですので、覚えておいて損はないかも。
▼参考サイト
WordPress カスタマイズ辞典
ねんでぶろぐ
或る阿呆の記
## footer
### wp_footer()
状況に応じて必要なコードを自動で出力するために必要な記述です。
例えばプラグインなどを使ったとき、そのスタイルシートのリンクを出力したりするのに必要な記述です。
## 個別記事ページの作成
single.phpの中身です。
基本的には、index.phpをベースに作成していいと思います。
`the_content()`メソッドでは、今回全ての記事内容を読み込むため、
index.phpで指定した、第一引数の「続きを読む >>」は不要です。
## メイン
### コンテンツ幅
メインコンテンツ幅を設定します。
`if ( ! isset( $content_width ) ) $content_width = 600;`
## ページャー
### 記事を複数ページに分ける
投稿画面で、を指定すると、ページを区切ることが出来ます。
これを実装させるために、`wp_link_pages`を設定します。
'',
'after' => '',
'link_before' => '',
'link_after' => '',
);
wp_link_pages($args);
?>
head
langを自動で指定する
<html <?php language_attributes(); ?>>
RSS2フィードリンクを表示する
add_theme_support('automatic-feed-links');
クラス名の設定
bodyのクラス名
<body <?php body_class(); ?>>
global $post
WordPress 固有のグローバル変数の一つです。
現在の投稿オブジェクトが入ってます。if(is_home() || is_admin()) return;
トップページ及び管理画面に影響がないように記載します。
投稿情報の取得
メインループ
functions.php
にて、pre_get_posts
のアクションフックで指定した条件がループします。
1ページに1回のみ処理されるループです。
明示的に指定をすることなく、データを取得することが出来ます。
サブループ
1ページに何回でも処理することが出来ます。
1回毎に明示的に条件を指定しなければなりません。
メインループとは別の条件でループさせたい場合や、1ページ内に2箇所ループさせる箇所がある場合はサブループを使用します。
サブループにはWP_Query
を使用します。
メインループとサブループ| WordPressテックラボ | [Smart]
WP_Queryの使い方をPHPコードにまとめた便利なコード・スニペット
pre_get_posts 使用例
<?php
// functions.php
functin roop_the_roop($query) {
// 管理画面に影響を出さないおまじない
if(is_admin() || !$query->is_main_query()) return;
}
$wp_query
概要
WPのグローバル変数の一つ。
WP_Query
オブジェクトを参照してます。
現在表示されているページの情報が入っています。
get_query_var()
概要
$wp_query
に格納されている配列 query_vars
の中身を取得します。
基本的には、投稿ページ(archive)に属するテンプレート階層で使用するのがいいと思われます。
構文
get_query_var($var)
下記の変数名のいずれかを必ず指定します。
指定した変数の中身が帰ります。
変数名 | 返り値の型 | 意味 |
---|---|---|
cat | string | カテゴリID |
category_name | string | カテゴリ名 |
category__and | array | すべてに該当するカテゴリIDの配列 |
category__in | array | 該当するカテゴリIDの配列 |
category__not_in | array | 除外するカテゴリIDの配列 |
meta_key | string | カスタムフィールドの名前 |
meta_value | string | カスタムフィールドの値 |
order | string | 並び順 |
orderby | string | 並び順を決める項目名 |
p | int | 投稿情報ID |
paged | int | ページング時のページ番号 |
post__in | array | 該当する投稿情報IDの配列 |
post__not_in | array | 除外する投稿情報IDの配列 |
posts_par_page | int | 1ページの投稿数 |
s | string | 検索キーワード |
tag | string | 投稿タグ名 |
tag_id | int | 投稿タグID |
tag__and | array | すべてに該当する投稿タグIDの配列 |
tag__in | array | 該当する投稿タグIDの配列 |
tag__not_in | array | 除外する投稿タグIDの配列 |
tag_slug__and | array | すべてに該当する投稿タグスラッグの配列 |
tag_slug__in | array | 該当する投稿タグスラッグの配列 |
get_queried_object()
概要
$wp_query
に格納されている配列 queried_object
のオブジェクトを取得します。
表示するページによってはNullなので、使用するページは気をつけること。
参考
WordPress : get_queried_object()の返り値のまとめ
get_ancestors()
概要
先祖のIDを配列で取得します。
親階層から順に、配列が生成されていきます。
パンくずを生成する場合は、array_reverseで逆から取り出すのがベターです。
自身のIDは生成されません。
構文
get_ancestors([$obj_id[, $obj_type[, $resource_type]]])
$obj_id
term_id もしくは post_idを指定します。(初期値は0)$obj_type
taxonomy名 もしくは post名を指定します。(初期値は空文字)$resource_type
taxonomy もしくは post_type を指定します。(初期値は空文字)