WordPressでサイトトップとブログトップを共存させる
普段は、Web屋に常駐してプロジェクトマネージャーやディレクターとして従事することが多いのですが、知人からの紹介でWordPressでサイト構築を頼まれることもあったりします。
ちょっと前になりますが、
ブログのトップページとは別にサイトのトップページを作って欲しい
という依頼がありました。
この件の解決について印象に残ったので綴ってみたいと思います。
要件
簡単にまとめると、以下のような要件でした。
- コーポレートサイトを 作りたい。
- サイトには、会社概要・事業説明・社長ブログ・問い合わせ、を入れたい。
- ブログは、週に一回は更新する。
よくある話ですよね。
ブログの更新頻度がそれなりに高いので、保守性を考えてWordPressを使えば問題ないと思っていました。
問題点
要件に対して、WordPressで作る旨(ブログに向いているCMSで、コーポレートサイトでも問題なく利用でき、他社での利用実績もたくさんあるんですよ~的な感じ)を説明をしたところ、
うーん、ブログがメインじゃないんだよね~。あくまでコーポレートサイトがメインで、ブログはおまけ程度に考えてください。
という指摘をもらいました。
ほうほう、なるほど。優先順位はそういう感じね。というところで、サイトの構成をちゃちゃっと手書きで作って見せたところ、
「あ~、そうそう、そんな感じでお願いします」
という返事をもらえたので、その場で合意に至りました。
「WordPressで実現できなかったら別ツール選定しないと面倒なことになるな」などと、帰りの電車の中でいっちょまえにリスクヘッジをしていました。
家に戻って早速、WordPressで実装可否の確認です。
普通にWordPressを実装すると、以下の構成になってしまいます。
コーポレートサイトのドメインを「mislead.jp」だとすると、「http://mislead.jp」でサイトにアクセスした場合、赤い噴出しのとおり、index.phpである、「社長ブログ(一覧)」が表示されてしまいます。
さて困った。どうしたもんかな。
ということで、以下、解決案について調べてみました。
解決案
google先生に聞いたところ、以下の方法で解決できるとのこと。
- index.phpをトップページにして、社長ブログ一覧をpage.phpで作る
- index.phpのテンプレートに、リファラーで判断しトップページ・社長ブログの出しわけを行う。
- 表示設定から指定した固定ページをフロントページにする
- home.phpというテンプレートを作成する
上の2つの案は、ちょっと手の混んだテンプレート改修が必要になり「保守性が下がるなぁ」ということで却下。
3つ目の案はブログ一覧用の固定ページも必要になるので、管理するページが増える。
なので、今回は、4つ目の案で進めることにしました。
(1~3の案は、時間が出来たら紹介します)
実装方法
実装について進めていく前に、home.phpというテンプレートを作成すると解決すると紹介したのですが、なぜ解決するのかを説明しておきたいと思います。
実は、WordPressはテンプレートの読み込みに優先順位があります。
例えば、記事詳細ページであれば、「single.php」を参照しに行きますが、それがなかったら「index.php」のテンプレートを参照するように出来ています。
(詳しくは、ページ種類別テンプレート階層を参考にしてください)
それと同じで、サイトのトップページ(ドメイン)にアクセスした場合、
- home.php
- index.php
という優先順位でテンプレートを参照するようになっています。
そのため、home.phpに、コーポレートサイトのトップページを作りこむことで、
このサイト構成を実現させることが出来るのです。
ただし、条件があります。それは「静的フロントページが設定されていないこと」です。
これはどういうことかと説明すると、実はさっき挙げた4つの解決案の3つ目「表示設定から指定した固定ページをフロントページにする」のことを指しています。
今回、この対応はしていないので、気にせずhome.phpを作りこむことで解決します。
理屈がわかったところで実装について触れます。
実装は、なんと、
home.phpというファイルを用意し、必要な記述をしてテーマフォルダにアップロードする
だけです。超簡単ですね。
懸念事項
今回は、いくつかある案の中で「home.phpというテンプレートを作成する」方法を選択しました。
こちらの案は、
トップページもクライアント側で操作したい
という場合には、向いていません。
(phpの知識、及びFTPの操作が可能であればもちろん可能なのですが、ここでは、ブログのように更新することを期待値として話をしています)
もし、ブログのようにトップページも更新したいという要件があるのであれば、解決案の3つ目「表示設定から指定した固定ページをフロントページにする」で実現できます。
こちらは、特定の固定ページをサイトのトップページにするを参考にしてください。
コメント一覧
コメントはありません