WordPress:固定ページを整理し、パンくずをつける

2019年4月21日

大量に固定ページがあるwordpressサイトにおいて、以下を行いたい。

  • 固定ページの親子関係を設定する
  • 兄弟ページの間の並び順を設定する
  • 「パンくず」リストを表示する
  • 固定ページの最後に「前へ」「後へ」を自動でつける
  • メニューからは数個の親ページのみを表示する

やりたいことは非常に単純なことだ。あまりに多くの固定ページがあるのだが、メニューからは、その数個のトップページしかたどれない。そのトップページから子へのリンクがあり、子には孫へのリンクがあるという具合になっている。

そして、あるページを表示した場合には、その階層を「パンくず」として表示してやり、さらに個々のページには、「前の兄弟ページ」「後の兄弟ページ」へのリンクがあるというわけだ。

Nested Pagesの導入

各固定ページの親指定と並び順の指定は、普通のエディタでは以下の場所で行う。

しかし、いくらなんでも大量の固定ページに対してこれはやってられない。探してみると、Nested Pagesというプラグインがあることに気がついた。これを導入すると、固定ページ一覧のインターフェースが全く変更され、ドラッグドロップで親子関係を指定できるようになる。

更に、兄弟関係の順序を入れ替えると「並び順」もその通りに変更してくれる。最初からこれを使うべきであった。

パンくずリストを表示する

これはLuxeritasテーマの場合だけだと思うが、以下の方法で簡単にできた。

「外観>カスタマイズ>パンくずリンク」で、パンくずを表示させる。
同じく、「外観>カスタマイズ>文字サイズ>パンくずリンク」で文字の大きさを変更する。

おそらくは、この機能の無いテーマでも、これをやってくれるプラグイン等を使えば実現できると思う。

固定ページの最後に「前へ」「後へ」をつける

実はこれが最も難しい。「前へ」「後へ」リンクをつけるプラグインは豊富にあるようだが、それはほとんど投稿に対してだけだ。固定ページを対象にしたものではない。

Luxeritasには、固定ページに対する「前へ」「後へ」もあるのだが(外観>カスタマイズ>全体レイアウト)、どういうわけかこれは作成日順に並べてしまうようだ。実際には違うかもしれないが、ともあれ先に設定した「並び順」ではない。これでは使いものにならならい。

Next Page, Not Next Post

上記をやってくれるプラグインとして一つ見つけたのは、「Next Page, Not Next Post」というものだ。これはその名の通り「次の投稿じゃなくて!次の固定ページね!」というものだ。あまりにも投稿だけを対象したプラグインばかりなのを揶揄しているのだろう。

これはプラグイン検索ではひっかからないので、zipファイルをダウンロードして、「プラグインのアップロード」を行う必要がある。有効した後には設定などは何もない。単純に、それぞれの固定ページにショートコード[next_page]あるいは[previous_page]を入れるだけである。

すると、該当ページのタイトルのついたリンクを作成してくれる。前のページが無い場合のprevious_page、後のページが無い場合のnext_pageは何もしないらしい。

Next Page

もう一つ見つけた。

これも要領としては同じで、Zipをダウンロードしてインストールする。先のプラグインと違うのは、設定画面でリンクの文言を変更できることだ。

ショートコードとしては、[previous][parent][next]の三種類がある。