WordPressのよくないところ

4年ほど前だとクライアント側で更新ができるよ!ってことでMovable Typeが流行って、
最近の案件だとそれがWordPressに変わってきてる。
静的なページを書き出した方がサーバの負担が減るとか、
別サーバへの移行が楽とかMovable Typeを使うメリットはあると思うけど、
ライセンス料が無料でプラグインが揃ってるからということでWordPressの方が人気がでてる。
あとは再構築にかかる時間がないことかな。
そんなこともありWordPressでサイトを作る案件が進んでるところ。

WordPressを使ってみて

で、実際やってることはと言えばテンプレートにWordPressの関数を書いて、
必要なデータや記事を表示させてるだけ。
簡単じゃん!と思いきや、
これまで自分でテンプレートを書いたり変更したりしてなかったので、
よくわからないまま調べつつ進めてる感じ。
PHPならなんとかなるかな!と思ってコードを読み初めて思う。
え?これ汚くない?
WordPressのコードは残念だというのをどこかで見たことがあったけど、
確かに残念だったぜ。
それはさておき、
気づいたことを書いておこう。

HTML+PHP → 混ぜるな危険

ごめんなさい。フレームワークってやっぱり偉大です。
MVCですね。
全部まとめてファイルに書いてはいけません。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

↑から始まる残酷な物語を君はまだ知らない。
ビューとロジックが入り組んでると頭がごっちゃになります。
まさにこれ↓
なぜ僕は WordPress を使わないで Movable Type を使い続けるのか。
でもそれこそがWordPress!フリーダムCMSの醍醐味。
頑張ってなんとかしましょう。

多すぎる関数

このサイトの人はよくまとめたなー。
すごい!
関数:WordPress私的マニュアル
これを見て思うのは、どこから手を付ければいいんだろうと。
目的に沿ってお好きに選ぶのはいいけど、
ここまで多いと探すのに時間かかるよ。
え?引数にカスタムフィールド名を渡したい?
まずはカスタムフィールド情報を取得する関数を探してください。

基本的(独創的)な文法

こんな書き方WordPressでしか見たことがないから慣れるのに時間がかかった。

<?php  if 条件  : ?>  
処理 A
<?php endif; ?>

えー!

<?php  if 条件  : ?>  
処理 A
<?php else :  ?>
処理 B
<?php endif; ?>

えー!!
if文の前後や間には通常のHTMLが入ります。
容赦なく入ります。

設計

条件分岐をさせたいときとかに記事の投稿IDが知りたいときがあるんだけど、
その取得方法がこちら。
テンプレートタグ/the ID

<?php the_ID() ?>

theってなんかかっこいいなおい。
実装、

function the_ID(){
global $id;
echo $id;
}

オマイガっ!
詳しくは↓を見てください。
テンプレート内で投稿IDを取得する
テンプレートを効率的に書くための気遣いなのかなんなのか。
大丈夫!どこでも取得できるようにglobalにしといたからね★ by WordPress
リンク先でも書かれてるけど普通に変数名ぶつかるよ。
WordPressって無理やり追加しました的な関数が多いな。

感想

一度出来上がればあとはクライアント側での更新なのでいいけど、
それまでにどんだけ悩まなくてはいけないのか。
そんなWordPressは個人ユーザーを中心に今日も順調にダウンロードされ続けています。