ウェブログ

[WordPress]親ページのスラッグを取得する


親ページがあるかどうか、というのは公式にも書かれているように $post->post_parent で取得できます。
そこで、固定ページ’東京’を親ページとして、子ページに’渋谷’というページが存在し、どちらもページを見ている場合もTrue(真)にしたい場合はどうしたらいいでしょう。

親ページ’東京’
id: 108
スラッグ: tokyo

子ページ’渋谷’
id: 139
スラッグ: shibuya

例:
1. IDで指定する場合

IDの場合は上記で可能。
ところが、どちらもスラッグで返そうとすると親ページの方は反応しません。

例:
2. スラッグで指定する場合

上記の場合、[$post->post_parent == ‘tokyo’]はtrueにならないので条件式は真になりません。
そこでget_the_titleを使えばいけるかもと思ってテストしました。がダメでした。

固定ページの親ページをスラッグで判定する関数

 
そこで、公式のWordPressフォーラムに載っている回答を参考に親ページのスラッグを判定する関数を作成しました。

上記をコピーして、functions.phpに貼り付けます。(作成していない場合は、新しくfunctions.phpを作成します)
これで判別ができるようになりました!
この関数を使いたい固定ページ内で呼び出しましょう。

例:

これで親ページのIDに関係なく、slug名だけで判定ができました。

「idでいいんじゃ?」

という声が聞こえてきそうですがテスト環境で開発していると本サイトとテストサイトのIDが一緒になるということがまずないのです。
なのでそういうときはスラッグで管理できると非常にラクだったりします。

この記事を書いた人

池田祐太郎

池田祐太郎

WordPress好きの池田です。Webの仕事の前はライブハウスでブッキングや音響をしてました。PHP, JavaScriptを自由に操りたいと思いつつ、つい訪れたサイトのソースコードを見てしまいます。


CONTACTお問い合わせ / お見積もり