「FPTRENDY」の中で、経済指標のページを整理したいと思ったんです。
それも、投稿じゃなくて固定ページで。国ごとにディレクトリを分けて、CPIとかGDPとかの指標ページをまとめておきたい。
それだけのことだったんです。
シンプルに /economic-indicators/
という親ページの下に、/economic-indicators/us-cpi/
みたいに子ページを並べる。
で、親ページには子ページの一覧が自動で出てくれたら最高、と思って。
まずはショートコード [display-posts] に期待
親ページIDを指定すれば表示されるはずだった
WordPressではおなじみのショートコード [display-posts]
。
これに child_of="親のページID"
を指定すれば、その子ページだけが表示されるはず。
そう信じて、親ページのID(4555)を調べて、こう書いたんです。
[display-posts post_type="page" child_of="4555" orderby="title" order="ASC"]
……ところが出てくるのは、CPIでもGDPでもなく、「Docs」とか「Amazon企業情報」とか。
「おまえたち、親子じゃないよな…?」ってページばっかり。
post_parent を確認しても「0(親なし)」?
関係ないページがなぜか混入
焦って post_parent
を調べるショートコードを入れて確認してみたら、
たしかに「🌐主要株価指数」などのページは post_parent = 0
になってる。
なのに child_of="4555"
のリストに出てくるのはなぜ…?
functions.php に妙なコードがあるのかと思って全部チェックしたけど、干渉はしてなかった。
もうこれは WordPress の深いところにある “仕様” にハマったんだと、半分諦めモード。
あ、そうだ。Content Views 入ってたんだった
前に使った「更新ページ」での記憶がよみがえる
思い出しました。
前に「更新履歴ページ」を作るときに使ったあのプラグイン、Content Views。
ふと、「これで固定ページを親子で抽出できたらラクなのでは?」と思い立ち、
中をのぞいてみたら、「Parent page」フィルターあるじゃないか…!
やってみたら…一発でできた(涙)
正しく絞られたリストを見てガッツポーズ
Content Views で以下を設定:
- 投稿タイプ:固定ページ
- Parent page:4555(/economic-indicators/)
- 表示形式:リスト(List)
- 表示項目:タイトルのみ
- 並び順:更新日(Modified date)+降順
これでビューを保存して、表示されたショートコードを親ページに貼ったら……
「ちゃんとCPIページだけ出てる!!!!!」
ようやく辿り着けた瞬間でした。
地味な作業のはずが、いつの間にか1時間以上が経っていた…。
まとめ:固定ページの一覧表示、甘く見てた
思っていたより奥が深かったWordPressの階層構造
今回のことで、WordPressの固定ページを「ディレクトリ構造で管理する難しさ」を痛感しました。
[display-posts]
でできると思い込んでた自分が甘かった。
でもそのおかげで、Content Views のありがたみも再確認。
経済指標のページを整理したい人、
URL構造で階層管理してる人、
投稿じゃなくて「固定ページ」を活用してる人──
そんなあなたには、迷わず Content Views をおすすめしたい。
今日の教訓
「WordPress、階層は見た目どおりに動いてくれない。でもツールはちゃんとある。」
✍️ 書いた人:FPTRENDY中の人
(固定ページ派のあなたへ、エールを込めて)