WordPressテーマの共通している部分をモジュール化しよう
ウィジェットは便利だがWPへログインが面倒くさい
こうやって毎日カウントアップしていると1年がとても速く感じますね。
今回は箸休め記事として今後Wordpressテーマを作っていく上で必須の テーマファイルをモジュールとして小分けにする作業を行います。
最初からここまで見てくださっている方は既に何度か伝えていると思いますが、 Wordpressでは1つのphpファイルにまとめていては管理しづらくなってくるので、 サイト(ブログ)全体に共通している部分はモジュール化(いわゆるパーツ別にファイルを分ける事)をしてしまおうという考えです。
モジュールとは単体だけでは機能しませんが、組み込むと1つの機能として働くことを指します。
モジュールとは機械の部品の役割と同じですね。
プログラミングの世界では使いまわしは基本なので、今後プログラミングをしていくのであれば Wordpressはパーツ化が視覚的にわかりやすくプログラミング的な考え方を学ぶのに最適です。
それではWordpress自作テーマ講座第10回目を始めましょう。
Wordpress公式の分割推奨phpファイル名を知る
Wordpressのテーマは下記の通りで構成されています。
- 表示の土台となるファイル(index.php single.php category.php等)
- モジュールファイル(header.php sidebar.php footer.php)
- メインのスタイルシート(style.css)
- 各種定義ファイル(functions.php)
1つ目の表示となる土台ファイルはそれぞれのページに行ったときに表示されます。
そこにモジュールファイルを組み込んで、 ブログに共通している部分を1つのファイルで管理できます。
header.phpにstyle.cssを読み込んでおけば、 どの土台でもheader.phpを読み込んでおけばスタイルシートも適用されます。
functions.phpに関しては特殊で、特に呼び出す必要もありません。
Wordpress独自のファイルなので基本的には自動的に呼ばれるため特に呼び出す必要はありません。
なのでfunctions.phpに記述した関数は土台やモジュール側のファイルで呼び出すことが可能です。
各種モジュールファイルの呼び出し方
Wordpressテーマファイルのそれぞれの役割がわかったところで、モジュールの読み込みについて学びましょう。
先程も言いましたが、Wordpressは下記のモジュールを正式に採用しています。
- header.php
- sidebar.php
- footer.php
この3つのモジュールは専用の読み込み関数が用意されています。 使い方はphpが実行できる状態でそれぞれ下記の関数を呼ぶだけです。
- header.php …… get_header()
- sidebar.php …… get_sidebar()
- footer.php …… get_footer()
関数を実行した箇所からそれぞれのファイルが読み込まれ展開されます。
これで共通した項目を全ページに簡単に出すことができます。
一度指定しておけば弄るのはそれぞれ対応しているphpファイルだけなので効率的ですね。
各種モジュールファイルで特定の条件の時だけ表示を変更
各種モジュールはphpなのでもちろんプログラミング構文が使えます。
例えばトップページではヘッダーの下にトピックスを表示したいけど、 記事単体のところでは表示したくないというときがあります。
その時は条件分岐を使って現在のページがどこかを調べて、 if文を使えば状況に応じて出力するhtmlを変更できます。
実は公式推奨以外のphpファイルも読み込める
Wordpress独自の関数だけでみるとheader・sidebar・footerのファイルしか読み込めませんが、 自分で作ったオリジナルのphpファイルも読み込むことが可能です。
例えばナビゲーションとかも複雑になってきたら、header.phpががゴチャゴチャしてくるので ナビゲーションだけ別ファイルに切り分けてしまった方がいいです。
そうするえばメンテナンス性も向上しますので、テーマが複雑になってきたらファイルを分けてしまいましょう。
呼び出し方は簡単で、navi.phpというファイルを読み込みたい場合は
<?php get_template_part('navi'); ?>
とWordpressが用意してくれているテンプレートタグで読み込めます。
しかしこれらは任意で読み込んでいるため、管理画面からは直接編集できません。
もしモジュールを細かく分けたい人はFTPでの操作を覚えてしまいましょう。
Wordpress自作テーマ講座第10回まとめ
Wordpressのテンプレート読み込み関数、実は知りませんでした(笑)
今までinclude_onceで読み込んでいたので今度からはこれを使おうと思います。
今回のテーマをindex.phpから分離することはかなり重要になってくるので、 箸休めとは言いましたがしっかりと覚えておいてください。
これさえ覚えてしまえばあとは実装したいコードを調べてコピペしていけば 意外と簡単にテーマを作ることができます。
後はデザインセンスですね。
正直こればっかりはスキルを積み重ねてWebデザインの知識も必要になりますし、 最初のうちは他の人の気に入ったデザインを何点か集めて、 組み合わせたりして完コピにならないようにデザインしていきます。
よく「センスあるなぁ」って言われる人は才能があるって思われがちですが、 センスとは引き出しの多さなので才能は正直関係ありません。
センスとはいかに多くの表現を知っているかです。
大体の人はセンス=才能と勘違いしがちなのでいっつもモヤモヤしております。
それでは。