ここは僕の冷蔵庫。後はあれして食べるだけ。

I love the frozen FOOD.

WordPressのテーマを作成する際に気を付けるべきこと。
今回は、速度面とメンテナンス面について、少し触れます。

今あるテーマをどうするかという議論はおいておいて、今回は、テーマを作成する際に「デリケートに考えたほうがよい点」を、ものすごく単純な側面でお話します。尚、本件は経験則だけで記載してきます(笑)経験則だけですので、お気をつけください。

速度面

速度面を考えていきます。
まずは、wordpressの簡単な全体像をば紹介。


デフォルメしている構造ですが、とりあえずこういった3段構成になってるイメージを。

さて、速度面を考えた場合、それはすなわち

トータル処理数を減らせばいい

だけです。
wordpressのテーマやら追加機能を、いかに動かさずに思い通りのデザインをブラウザに投げられるかです。
尚、今回は、コンテンツやブラウザ側の処理については言及しません。
コンテンツ読出しなどは、wordpress速度改善などを参照ください。

ウサギとカメ

昔話にもあります「ウサギとカメ」。単純に考えて、ウサギの方がテキパキしてますよね。レースゲームか何かでキャラクターを選択するなら、ウサギの方が有利っぽいです。途中、ぐーたらな性格がでなければ早いでしょう。

プログラムで考えます。
「ゴールにつくのが早い」というのを「処理に時間がかからない」という意味で、「ウサギ級」と「カメ級」を定義します。

  • 「ウサギ級」の機能
  • 高速に終わる機能
  • 「カメ級」の機能
  • どんくさい機能

ついついあまり考えずにコードを書いてしまうのですが、wordpressの機能やphpのコード、追加機能にはこれらの「級」があるわけです。
ただ、困ったことに、普段テーマを作っている時は、「カメ級」なのか「ウサギ級」なのか、どちらかを考えながらコードを書いていることが少ない。とりあえずwordpressの便利な関数やプラグイン(追加機能含む)を使い倒すわけです。

遅くとも使わないと・・・

ただ、その機能の「級」がわかったとしても、テーマの中で使いたいシチュエーションに出くわすわけです。遅くたって機能ほしいもんっ、ってな話です。
じゃあどうするか。
単純です。

同じ結果が出るものは2度よばない

例えば、postのloop処理内で、何度も日付を読みだすとか、何度もタイトルを読みだすとか。
また、loopの中で、そのpostTypeがsingleなのかpageなのかの判断をする必要はないわけですよね。
1度読みだしたら再利用することを考えましょう。極端なことを言えば、ハッシュとかに保存したものであれば、一度要素を取り出したら、取り出したものを再利用していくぐらいののりを考えるといいかもしれない。

処理の向う側

つまるところ、テーマから呼び出す処理の向う側では、「カメが重い荷物を持ってる」ぐらいの勢いで考え、コードを書いていくべきです。できるだけ同じことをさせない、同じことを聞かない、これを徹底するといい。

メンテナンス面

メンテナンス性について、少し考えます。
今回は2つ取り上げてみます。

  • テーマにどこまで機能を書くか
  • phpのお作法

テーマにはどこまで機能を書くか

wordpressに機能を付け加えるアプローチは、2つあります。

  • テーマに機能を記載する
  • プラグインに機能を記載する

ベースの機能を持ったテーマ。そして、その機能を拡張(補完)するプラグイン。
どちらにでも「機能」を記載できます。

さて、今回「テーマを作成する際に気を付けること」なので、こんなことを考えます。

テーマのfunction.phpにshortcodeを入れた

別に普通のことです。私も普段からこうしてます(笑)
ただ気を付けないといけないのは、テーマを変えるときです。
Aテーマを他のテーマへ変えた瞬間、shortcodeがきかなくなります。Aテーマの中にshortcodeを定義していたので、新しいテーマでshortcode部分が「生データ」として画面にでてきちゃう(タグで表示される)わけです。

Bテーマを適応する前に、Aテーマのshortcodeをそっくりコピーすれば済むことですけどもね

この手のことがあるので、テーマを作成する場合は、プラグインとセットで作成する方法を勧めてます。
「Aテーマ」というテーマを作る場合、2つに分ける感じです。

  • Aテーマ(最低限の機能)
  • Aテーマ用プラグイン(各種shortcodeなど)

こうしておけば、少なからずAテーマをBテーマにかえても、Aテーマプラグインを停止しなければ、shortcodeは助かりますでしょ。

phpのお作法

php言語というのは、ほんとやたらと色々書ける。小難しいことも単純にサクサクかける。ほんと便利な言語です。htmlを書きながらphpで補完していく。ほんと楽ちんな言語です。
ただ、困ったことが1つあります。
それは、「やっつけでコードを書いちゃう」ってことです。
あまり計画的にやらなくても、コードが書けちゃう。htmlだろうとphpだろうと構わずに、次から次へとコードがかける。
これすなわち、

「ぐちゃぐちゃ」なコードになってしまいがち

ということですね。。。。
(私も、いつも反省してますが・・・)
さて、ここで2個ほどおすすめの技を紹介しときます。
少なからず、少しは整理できますよ。

function.phpの使い方

よく、function.php 1つのファイルに色んな機能を盛り込む方いらっしゃいます。が、あとで、よくわからなくなりがち。できたら、function.php にはこんな感じで requireかますといいかもです。

//初期化
require_once( "func/init.php" );
//コメント系処理
require_once( "func/comment.php" );
//ショートコード処理
require_once( "func/shortcode.php" );
:

目的で分けるといいかもです。

index.php等

デザインのテンプレートとなる index.php などを編集する際の話です。
function.phpも、少なからずそうなのですが、 index.php などは、htmlレイアウトを必ず持っているスクリプトです。
ですので、htmlとphpが強依存で同居している状態。フレームワークなどを使っていない場合は、この依存が激しい状態(見た目にわかりにくさを醸し出すコード)を作り出すということを念押ししながら作業を進めないといけないです。

  • どこで何をやっているか
  • どこが、どのレイアウトなのか

が、さっぱり分からないなんてこと、ざらにあるかと思います。
これを避けるためには

「処理」と「表示」を分けて考える

が一番です。
例えば、下記のことを検討するのも手です。少しは見やすくなりますよ。

  • index.phpの処理の中で、明示的に「処理の部分」と「表示の部分」に分ける
  • 出来るだけ echo でhtmlタグを出さない
  • htmlレイアウトの原型が見えるように、phpをちりばめる
  • index.phpの処理部分を index_proc.php で定義してrequireする
  • フレームワークを使って処理をわける

もちろん、index.phpのデザインパーツごとにソースを分けるのも大事かと

参考になれば幸いです!

参考

参考記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

CAPTCHA