ディレクトリで整理したいだけなのに…WordPress固定ページの一覧表示に思わずハマった話

ブログ

「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中の人

(固定ページ派のあなたへ、エールを込めて)