WordPress

WordPressサイトのHOMEにカテゴリーページを表示したい!

今回は、面白い質問と面白い参考サイトをいただいたので、「WordPressサイトのHOMEでカテゴリーページのように表示していく方法」について記載していきます。

これだけだと意味がわからないと思いますので、どういうサイトかを具体的に説明していきます。

WordPressのパンくず「HOME」を押すとカテゴリーページに!?

5bcb5d2f5a783b5b1c935f60d0c4719a 1024x576 - WordPressサイトのHOMEにカテゴリーページを表示したい!

最初は質問の意味がわからなかったのですが、要点をまとめるとこうです。

  • サイトのTOPページとパンくずの「HOME」でアクセスされる先が違う
  • パンくずの「HOME」を押すと、記事一覧の無いカテゴリーページ(固定ページ)に飛ぶ
  • パンくずは「HOME > A > a」になっており、「A」を押すと、カテゴリーの記事一覧ページに飛ぶ
  • 「HOME > A > a」と「HOME > B > b」の場合のHOMEは違うページになるということ

これで意味が通じるでしょうか。少しむずかしいですね。参考サイトが見せられたらすごく良いのですが、プライバシーなどの問題で控えます。

もっと具体的にサイトマップ形式で見たら分かるかもしれません。

具体的なサイトの構造マップ

サイトの構造としては以下のような構造です。

  • TOP
    • A(カテゴリー?)
      • a1
      • a2
      • a3
    • B(カテゴリー?)
      • b1
      • b2
      • b3
    • C(カテゴリー?)
      • c1
      • c2
      • c3

これだけ見ると普通なサイトのように感じますよね。ですが、パンくずリストは

「HOME(Aのカテゴリー詳細ページ) > A(Aの記事一覧ページ) > a(記事)」となっているのです。

この「Aのカテゴリー詳細ページ」は固定ページで作られていました。

coala - WordPressサイトのHOMEにカテゴリーページを表示したい!

WordPressの知識に明るい方は、これをどうやって実装するのか考えてみてほしいです!

パーマリンクの構造

パーマリンクの構造はこんな感じです。

  • a1にいる場合:「HOME > A > a1」
  • b1にいる場合:「HOME > B > b1」
  • c2にいる場合;「HOME > C > c2」

これらのHOMEがそれぞれ異なるページになっています。

実装されていた方法

それでは、実際に実装されていた方法を紹介します。

最初は僕も、テーマファイルを改造してHOMEのパーマリンクを細かく設定できるようにしているのかと考えました。ですが、違ったのです。

WordPressサイトをサブディレクトリで複数立てて、サブディレクトリで運用する。

です。つまり、A,B,Cはカテゴリーに見えていたようで、カテゴリーではなくサイトTOPだったのです。

URLも「http://example.com/A/a」「http://example.com/B/b」となっていたので勘違いしやすいですね。

複数のワードプレスのサブディレクトリで運用することで、HOMEの飛び先をサブディレクトリTOPにできます。ルードドメインのWordPressは各サブディレクトリへの導線を貼るだけで十分なのです。

1つのWordPressで実現するには?

これを一つのWordPressで実現できる!と思う方もいるでしょう。実際、僕も最初は思っていました。大体のロジックはこんな感じです。

  • パンくずリストのHOMEがアクセスする固定ページをカスタマイズ、もしくは指定できるようにする
  • 記事のカテゴリーを読み取ってパンくずリストを描画する
  • パンくずの描画は「指定ページ > カテゴリー > 記事」になるようにする

これなら、確かに実装可能です。理論的にはですが。

何個か問題になるポイントがあるので、「おやっ?」と思ったのが、今回の発見につながりました。

問題になりそうなポイント

先程の実装方法だと、問題になるポイントがあります。

[st-mybox title=”注意ポイント” fontawesome=”fa-exclamation-circle” color=”#ef5350″ bordercolor=”#ef9a9a” bgcolor=”#ffebee” borderwidth=”2″ borderradius=”5″ titleweight=”bold”]

  • 固定ページの指定方法はどうするのか(IDで指定するのが普通)
  • IDで指定する場合、カテゴリーを作る動作とは別の動作なので指定を忘れるかもしれない。その場合どう回避処理するか
  • HOMEを押してもTOPに戻ってこれないことのユーザー体験はどうなのか

[/st-mybox]

このあたりが問題になって、実装がかなり大変そうだなと思いました。「人間がやる実装じゃないぞ…もし、やってたらこの管理者はサイボーグだ…」と思いました。

また、参考にしたサイトではHOMEを押してもロゴを押してもTOPに戻れないので「なんじゃこりゃ!」ともなりました。

このあたりの問題が原因で、1つのワードプレスで実装するもんじゃないなと思います。

複数のWordPressをひとつのMySQLデータベースで

複数のWordPressを立てる場合、気になるのはMySQLのデータベースの圧迫ですよね。

レンタルサーバーには、MySQLを立てられる数に限度があったりするので、無駄に使いまくりたくないという方も多いでしょう。僕もその一人です。

ですが、今からいうポイントを押さえると、ひとつのMySQLデータベースで複数のサイトが立てられます。

WordPressインストール時の「データベース接頭辞」を異なるものにする。

これだけです。デフォルトでは「wp_」みたいなのになってるはずなので、「wp1_」とかで作っていきます。

ちなみに、レンタルサーバーによってはWordPressの自動インストール機能でこの「データベース接頭辞」の存在を見れない人もいるはずです。

そういった方は、WordPress標準のインストールの仕方を調べましょう。

 

ABOUT ME
Ruana
Ruana
Ruana(合同会社ルアナ)です。Ruana占いというWebメディアの運営とWordPress専門の技術サポートをしています。WordPressサポート歴が5年という経験を活かし、多くの方のWordPressの修正・改造のお役に立てれば幸いです。