WordPressでサイトトップとブログトップを共存させる

公開:2014-11-03 / 制作・開発 /
更新:2016-02-27
icatch_wordpress

普段は、Web屋に常駐してプロジェクトマネージャーやディレクターとして従事することが多いのですが、知人からの紹介でWordPressでサイト構築を頼まれることもあったりします。

ちょっと前になりますが、

 

ブログのトップページとは別にサイトのトップページを作って欲しい

 

という依頼がありました。

この件の解決について印象に残ったので綴ってみたいと思います。

 

要件

簡単にまとめると、以下のような要件でした。

  • コーポレートサイトを 作りたい。
  • サイトには、会社概要・事業説明・社長ブログ・問い合わせ、を入れたい。
  • ブログは、週に一回は更新する。

 

よくある話ですよね。

ブログの更新頻度がそれなりに高いので、保守性を考えてWordPressを使えば問題ないと思っていました。

 

問題点

要件に対して、WordPressで作る旨(ブログに向いているCMSで、コーポレートサイトでも問題なく利用でき、他社での利用実績もたくさんあるんですよ~的な感じ)を説明をしたところ、

 

うーん、ブログがメインじゃないんだよね~。あくまでコーポレートサイトがメインで、ブログはおまけ程度に考えてください。

 

という指摘をもらいました。

 

ほうほう、なるほど。優先順位はそういう感じね。というところで、サイトの構成をちゃちゃっと手書きで作って見せたところ、

Webサイトの構造 一般的

 

「あ~、そうそう、そんな感じでお願いします」

という返事をもらえたので、その場で合意に至りました。

 

「WordPressで実現できなかったら別ツール選定しないと面倒なことになるな」などと、帰りの電車の中でいっちょまえにリスクヘッジをしていました。

 

家に戻って早速、WordPressで実装可否の確認です。

普通にWordPressを実装すると、以下の構成になってしまいます。

WordPressで実現したいサイト構造

 

コーポレートサイトのドメインを「mislead.jp」だとすると、「http://mislead.jp」でサイトにアクセスした場合、赤い噴出しのとおり、index.phpである、「社長ブログ(一覧)」が表示されてしまいます。

 

さて困った。どうしたもんかな。

ということで、以下、解決案について調べてみました。

 

解決案

google先生に聞いたところ、以下の方法で解決できるとのこと。

  1. index.phpをトップページにして、社長ブログ一覧をpage.phpで作る
  2. index.phpのテンプレートに、リファラーで判断しトップページ・社長ブログの出しわけを行う。
  3. 表示設定から指定した固定ページをフロントページにする
  4. home.phpというテンプレートを作成する

 

上の2つの案は、ちょっと手の混んだテンプレート改修が必要になり「保守性が下がるなぁ」ということで却下。

3つ目の案はブログ一覧用の固定ページも必要になるので、管理するページが増える。

なので、今回は、4つ目の案で進めることにしました。

(1~3の案は、時間が出来たら紹介します)

 

実装方法

実装について進めていく前に、home.phpというテンプレートを作成すると解決すると紹介したのですが、なぜ解決するのかを説明しておきたいと思います。

 

実は、WordPressはテンプレートの読み込みに優先順位があります。

例えば、記事詳細ページであれば、「single.php」を参照しに行きますが、それがなかったら「index.php」のテンプレートを参照するように出来ています。

(詳しくは、ページ種類別テンプレート階層を参考にしてください)

 

それと同じで、サイトのトップページ(ドメイン)にアクセスした場合、

  1. home.php
  2. index.php

 

という優先順位でテンプレートを参照するようになっています。

 

そのため、home.phpに、コーポレートサイトのトップページを作りこむことで、

WordPressで実現したいサイト構造2

 

このサイト構成を実現させることが出来るのです。

 

ただし、条件があります。それは「静的フロントページが設定されていないこと」です。

 

これはどういうことかと説明すると、実はさっき挙げた4つの解決案の3つ目「表示設定から指定した固定ページをフロントページにする」のことを指しています。

今回、この対応はしていないので、気にせずhome.phpを作りこむことで解決します。

 

理屈がわかったところで実装について触れます。

実装は、なんと、

 

home.phpというファイルを用意し、必要な記述をしてテーマフォルダにアップロードする

 

だけです。超簡単ですね。

 

懸念事項

今回は、いくつかある案の中で「home.phpというテンプレートを作成する」方法を選択しました。

こちらの案は、

 

トップページもクライアント側で操作したい

 

という場合には、向いていません。

(phpの知識、及びFTPの操作が可能であればもちろん可能なのですが、ここでは、ブログのように更新することを期待値として話をしています)

 

もし、ブログのようにトップページも更新したいという要件があるのであれば、解決案の3つ目「表示設定から指定した固定ページをフロントページにする」で実現できます。

こちらは、特定の固定ページをサイトのトップページにするを参考にしてください。

 


コメント一覧

コメントはありません

コメントを残す

*

© yukio iizuka All Rights Reserved...