【WordPress】一つのWPで複数のTOPページを構築するには
WPサイトで複数のTOPページを設置したいという案件があったので備忘録に。
投稿記事の内容は同じでTOPのヘッダーとTOPのURLだけ変えたいというもの。
ただし下層ページのヘッダーも別デザインにしたい。
WPは一つで運用したい。
元のサイト:hogehoge.com
追加したいTOP:hogehoge.com/test
TOPページだけなら固定ページで作成するだけだが、下層コンテンツも内容はそのままでヘッダー等のデザインは変えたいということ。
WPにはプラグインでマルチサイト機能がありますが、管理画面が複雑になってしまうので今回は複数のheader.phpを使いcookieを使用して条件分岐させる方法で対処。
1.test.phpというテンプレートを新規作成し、そこに新たなTOPデザインをコーディング
2.hogehoge.com/testを設置するため、固定ページに新規TOPのtestを作成しテンプレートをtest.phpに設定。
タイトルのみで内容は未記述のまま
3.header-2.phpを作成しtest.php用のデザインに差し替え
グロナビ等のhomeへのリンクをhogehoge.com/testに。
3-2.header-2.php内にcookieを設定。
※cookieの記述は1行目に書かないと無効に
4.test.php冒頭のphpコード
5.投稿ページ、固定ページのテンプレート1行目にcookieを取得するコードを記述。
フロントページは除く(ここ重要)
解説:
最初にhogehoge.com/testを踏んだ場合にcookie情報が書き込まれ、以降の下層ページでも別デザインのheader-2.phpが反映される。
ただしcookieが有効の間は同じブラウザで元のheader.phpは読まれないため、元のサイトは一定時間開かない。
今回は限定サイトということなのでこれでOK。
元サイトも見せる場合はheader.phpにcookieを消すコードを記述すればよい。
今回の対処は
cookieの書き込み:setcookie(“sitename”,”hogehoge”,time()+60*60);
cookieの取得:$_COOKIE["sitename"]
WordPressでのheader分岐:
条件はいくらでも追加できる。
WordPress用の構文を使うこと。
「:」と「;」の扱い注意。