見出し画像

静的ページでWordPressのヘッダ・フッタを読み込む方法

便利とは何だろう?
あなたは利便性とは何かを語る事が出来るだろうか?多くの人はきっとこう答えるだろう。

楽が出来る事。

では、さらに問うが、とはどういう状態だろうか?人は何をもってどんな時に楽と感じているのだろうか。これもやはり多くの人はきっとこう答えるだろう。

面倒くさかった事が面倒くさくなくなった時。

では、面倒くさいとは何だろうか?
私は面倒くさいには2種類あると考えている。
1.手作業が面倒
2.考えるのが面倒

手作業が面倒はすぐに分かるだろうし、多くの人が面倒くさいといえばこちらを連想したのではないだろうか。荷物を運ぶ・靴ひもを結ぶ・音声の文字起こし・・・等、世の中は面倒くさい手作業で満ち満ちている。

これらの面倒くささを軽減したり完全に解消するのが便利グッズと呼ばれる物だ。台車やゴルフシューズのダイヤル式、AI文字起こしシステムだったりによって、手作業の面倒くささは軽減されている。

では、考える面倒くささとは何だろうか?

美味しんぼという漫画にこのような回がある。
鍋対決において、山岡は具材とタレを提供するだけの万鍋(よろずなべ)を披露した。具材も調理法もタレも自由。これが究極のおもてなしだ!とドヤってはみたものの、丿貫(へちかん)はその自由さに戸惑ってしまい、鍋を楽しめないでいた。

一方、雄山は至高の五大鍋と称して、雄山自身が至高と認めた5つの鍋料理を披露したのだ。客を選択肢の海に放り出すのではなく、これぞ最高と信ずるものを提供する事こそが真の意味でのもてなしなのである!と説き、見事勝利を収めた。

このエピソードが示したのは、人間は思考を負担と感じるのものであるという真理だ。鍋対決の例に沿ってもう少し書くと、自由とは思考を強制するという側面もあるので、何でも自由にどうぞというのは客に負担を強いる行為になりかねないよね。という事である。

そう、人間は考えたり決めたりするのが面倒くさいのだ。

では、考える面倒くささを軽減してくれる便利グッズとは何か?例えば、道路や電車乗り換えの最適解を示してくれるGoogleMap。オススメの映画を提案してくれるNETFLIX。居酒屋のコース料理等がそれにあたるだろう。

いずれも考える面倒くささという負担を軽減してくれている。つまり、手作業や思考かという出発点の違いはあるものの、その先で合流する面倒くさいという感覚を軽減する機能が便利という事の本質なのではないだろうか。

本記事では、考える面倒くささを軽減する便利グッズの一つ。WordPressについて記載する。

もともと、今までの記事のように課題解決の手法だけを淡々と書くつもりだったのだが、美味しんぼの例えを思いついて書いていたらつい前置きが長くなってしまって非常に後悔している。

かといって、「利便性の本質」などといったタイトルで単独の記事を書くのも違うなと思ったので、一本の記事に収めて続きを書いていく事にする。

さて、WordPressで作成したサイトを部分的に静的ページにしたいという場面はないだろうか?基本的にはWordPressのテーマで整った体裁を利用しつつ、特定のページではプログラムを組み込みたいといった場合等だ。

私の場合だが、CMSで構築したECサイトからペイジェントという決済代行業者に接続しなければならない、という場面に遭遇した際に、CMSとhtmlの共存の必要性を感じた。

接続の仕組みについては以下の記事に色々記載している。

WordPressのテーマは実に便利なものだが、その利便性は自由度を排する事によって実現しているものだ。小難しい所はあらかじめ設定した上で隠しておいたから初心者でも簡単!というのがウリだ。

ところが、この親切設計はちょっと込み入ったカスタマイズとの相性がとても悪い。当たり前だ。込み入った操作を制限する事によって初心者でも簡単!にしているのだから。

逆に、htmlもphpもcssも自力で書いて構築すれば自由度を極限まで上げる事が出来る。その反面、知識と技量が要求されるので、初心者お断りの世界になってしまうのだが。

利便性と自由度がトレードオフの関係にあるのは、美味しんぼの鍋対決が示している通りだ。

ECサイトでのphpの必要性に気付いた時には既にCocoonである程度サイトを構築してしまっていたし、php使いたさに全てをhtmlで書くのはあまりに大変だ。それほどWordPress(Cocoon)は便利だった。

周囲に詳しい人はおらず、ChatGPTも無かった当時、Google検索やYouTube検索するぐらいしか手立てがなかったので調べてみた。

静的ページ用のフォルダを作成して、そこにWordPress関連のフォルダをコピペして・・・みたいな解説だったと思うのだが、あまり理解出来なかった。その解説内容は私が実現したかった事と微妙に違っていたのかもしれない。

そこで、駄目元で実験してみたのだ。
例えばhoge.comというサイトをWordPressで作成したとする。
/hoge.com/public_html/index.php
がTOPページになるのであれば、
/hoge.com/public_html/
に勝手にorderというフォルダを作成して、その中にindex.phpを置けば
/hoge.com/public_html/order/index.php

https://hoge.com/order/
で表示されるのではないか?

やってみた所成功した。良かった。

しかし、ここで問題が発生した。
/hoge.com/public_html/order/index.php
はhtmlの単純な静的ページなので、Cocoonのヘッダ・フッタが適用されない。ドメインは同じなのにそこだけ別のページを閲覧しているような気分にさせてしまう。

そこで、orderの上位にあるCocoon本体のヘッダ・フッタ情報を読み込めないか調べてみた。Cocoonで作成した固定ページにしろブログ記事にしろ、テーマで定められた一つのヘッダ・フッタを読み込んでいるはずなので、技術的に不可能ではないだろうという確信はあった。

たしか、解決策を見つけたのはCocoonのフォーラムだったと思うが、予想通りシンプルな答えだった。以下のようなコードだ。

<!DOCTYPE html>

<head></head>

<body>

<?php
   // ヘッダを読み込む
   require('../../wp-blog-header.php');
   get_header();
  ?>

</body>

  // フッタを読み込む
  <?php get_footer(); ?>

  </html>

phpで書かれた2つのコードを入れる事で、Cocoonのヘッダ・フッタを読み込む事に成功した。ただし、実際のサイトはサブドメインで作成しているので、サンプルで示したコードとはディレクトリの構成が若干異なるかもしれない。

もし、これを流用される際は、require('../../ の部分で何階層上がるかを自身で確認の上使用していただいた方が良いと思う。





この記事が気に入ったらサポートをしてみませんか?