Drip 'n' Snip

ドリップン・スニップ

あなたの生活役立つWEB情報イッパイお届け
artboard

静的なwebサイトなら、WordPressを使わずにphpのincludeでテンプレートエンジン化しちゃおう


今回はweb制作の話です。

こんにちは、基本的にWordpressでweb制作をしている僕です。

しかし、時にはWordpressの機能が何一つ必要ない、というお仕事もありますよね。
お問い合わせフォームも、ブログ機能も必要ない!という場合。
それでも僕は、ランディングページでないのなら、メニューや共通のヘッダ、フッタが使えると便利なので、Wordpressを使ってどんな静的なサイトも作っていました。

そんな時、ふと気づいたのです。
それって、普通にPHPのinclude関数でいいんじゃないの?と。

phpのinclude関数とは

そもそも、HTMLで書かれたwebページのファイルの拡張子は.htmlですが、PHPが使えるwebサーバーであればその拡張子を.phpにしても動きます。

.phpという拡張子を持ったファイルの中で、で囲んだ部分を記述すると、その囲まれた部分はphpを記述できるようになります。
逆に、囲まれていない部分は普通にhtmlを記述する事が出来ます。
ここまでが前提。

そして、wordpress等で便利なヘッダ・フッタ・メニュー等の仕組みは、それぞれを別のファイルにしておいて呼び出すことによって使いまわせる、という点が便利なのです。

そこで、PHPに用意されている、別の.phpファイルを呼び出すことが出来るinclude関数を利用すれば、Wordpressのようにヘッダ・フッタ・メニューやサイドバーをそれぞれ別ファイルとして記述して、それぞれのページ毎に結合して利用することが出来るようになります。

%e5%90%8d%e7%a7%b0%e6%9c%aa%e8%a8%ad%e5%ae%9a%e3%82%bf%e3%82%99%e3%82%a4%e3%82%a2%e3%82%af%e3%82%99%e3%83%a9%e3%83%a0
こんなイメージですね。

header.phpには共通のヘッダの部分、menu.phpには共通のメニューの部分…という風に、共通部分を別のPHPファイルに切り分けて作ります。
そして、index.phpやsubpage.php等のそれぞれのページで呼び出して、そのページに固有の部分だけを書くようにするのです。

具体的には、

<?php include("header.php"); ?>

のようにして呼び出すphpファイルを指定します。
そしてメインの記述を終えたら、サイドバーとフッタを同じようにして呼び出します。

<?php include("sidebar.php"); ?>
<?php include("footer.php"); ?>

こうしておけば、メニューに変更が入った場合や、サイドバーの内容など、1箇所変更するだけで全てのページに適用されます。
静的なHTMLだけで作ると辛かった共通部分への変更問題が、これだけで解決出来てしまいます。

まとめ

・静的なページだけで良いWEBサイトを作る際に、HTMLだけを使うのでなく、PHPを使ってinclude関数を使用すればテンプレートエンジンのように共通部分を切り出すことが出来る。
・上手くいけば、Wordpress等のテンプレートエンジンのインストールや更新・データベースの確保等の手間を省略出来る
・サーバーがPHPを利用できることさえ確認しておけば何も難しいことはない!

静的なHTMLサイトを作る際には是非お試しください。

NEXT
あけましておめでとうございます。

  関連記事

sagi
通販詐欺にあった記録と、通販詐欺の見分け方

こんにちは。 恥ずかしながら最近ネット上の通販サイトで詐欺にあってしまいました。 ...

wpdm
wordpressでファイルを配布したい時、FTPを毎回つなぐのは面倒だな…?

こんにちは、唐突ですが、Wordpressでファイルを配布したい時、ありますよね ...

artboard
【2017年1月】今個人でECサイトを作るなら?【徹底比較】

さて、主・副問わず、個人事業をされている皆さまにおかれましては、内容によっては個 ...

seokeywords
【SEO】ブログのアクセスアップしたい?じゃあキーワードについてちょっとおさらいしておこう。

ブログのアクセスが伸びてきて嬉しい僕です。 この前お仕事でちょっとSEOについて ...

docker
WordPress環境をローカルで、超簡単に構築!Docker for mac

こんにちは、今回はWordpressを使って業務をしている方、もしくは趣味でpl ...

-WEB開発, ノウハウ