WordPress 直上の親ページのIDやスラッグを取得する方法
最終更新日 - 公開日 2016.03.05
by
WordPress で現在表示しているページの直上の親ページのスラッグやIDを取得して表示する方法を紹介します。
例えば、固定ページで現在表示しているページの親ページの情報を表示したいときに便利な方法です。
ここで言う「直上」は、子ページなら親ページ、孫ページであれば子ページを指します。
親ページのIDを取得する方法
現在表示している投稿から post_parent
で親ページの ID
を取得します。
次のコードは、投稿のグローバル変数 $post
から post_parent
で ID
を取得する方法です。
<?php
$parent_id = $post->post_parent; // 親ページのIDを取得
?>
親ページのスラッグやタイトルを取得して表示する方法
取得した ID
から、親ページのスラッグやタイトルを取得して表示する方法を紹介します。
次のコードは、取得した親ページの ID
から、スラッグ・タイトル・URLを表示する方法です。
<?php
$parent_id = $post->post_parent; // 親ページのIDを取得
$parent_slug = get_post($parent_id)->post_name; // 親ページのスラッグを取得
echo $parent_slug; // 親ページのスラッグを表示
$parent_title = get_post($parent_id)->post_title; // 親ページのタイトルを取得
echo $parent_title; // 親ページのタイトルを表示
echo get_permalink($parent_id); // 親ページの URL を表示
?>
親ページの作成日や本文を取得して表示する方法
親ページの作成日や本文を取得して表示する方法を紹介します。
次のコードは、スラッグ・タイトル・作成日・抜粋・本文を表示する方法です。
<?php
$parent_id = $post->post_parent; //親ページのIDを取得
echo get_post($parent_id)->post_name; //スラッグ
echo get_post($parent_id)->post_title; //タイトル
echo get_post($parent_id)->post_date; //作成日
echo get_post($parent_id)->post_excerpt; //抜粋
echo get_post($parent_id)->post_content; //本文
?>
get_post
以外にも、関数 get_the_title()
などのパラメーターに、直接親の ID
を指定する方法もあります。
<?php
echo get_the_title($post->post_parent); // 親ページタイトル
echo get_page_link($post->post_parent); // 親ページURL
?>
表示条件が決まっている場合は、各関数に直接IDを指定する方法が簡単かもしれません。
直上の親ページのタイトルを取得する方法
直上の親ページのタイトルを取得するには、親ページの ID
から get_post()
を使ってその親のIDを取得。
親の親のIDを get_the_title に指定してタイトルを取得します。
次のコードは、現在表示しているページ(例えば孫ページの場合)の親ページ(子ページ)のさらに親(親ページ)のページタイトルを取得する方法です。
<?php // 直上の親ページのタイトルを取得する方法
$parent_id = $post->post_parent; // 親ページのIDを取得
if ($parent_id) { // 親ページがあれば実行
$parent = get_post($parent_id); // 親ページの情報を取得
echo get_the_title($parent->post_parent); // 親ページの親のタイトルを表示
}
?>
親ページのカスタムフィールド値を取得する方法
カスタムフィールドプラグイン Advanced Custom Fields を使っていると、
親ページのカスタムフィールドの値を次のコードで取得できます。
<?php the_field('text_field',$parent_id); ?>
関数のパラメーターにフィールドネームと親ページの ID
を指定します。
Advanced Custom Fields の詳しい情報はAdvanced Custom Fields の表示方法で詳しく解説しています、こちらも合わせてご覧ください。
まとめ
WordPress で現在表示しているページの直上の親ページのスラッグやIDを取得して表示する方法を紹介しました。
最上の親ページを取得したい場合はWordPress 最上の親ページのタイトルやリンクURLを取得する方法をご覧ください。