きっかけ
仕事でWordPressを扱っているが、WordPressは正直使いにくい。
趣味でRuby on Rails やLaravelに触れたことのある私だが、WordPressはどうも好きになれない。
構築は楽だし慣れれば早いんだけど、WP全体の仕様に理解ができない。
どうやら、プログラマー側から出てきた人間であればあるほどそう思うらしく、
PHPのフレームワークでWordPressしかやったことがない人間からすれば、別に違和感を感じないらしい。
その理由として極一部であるが、どうしてそう思うのか、整理してみた。
使いにくい理由
値取得とテキスト表示が別関数
例えば、サイトのタイトルを表示させたいときは
<?php the_title(); ?>
なんだけど、タイトルを関数に入れて表示させたいときは
<?php
$title = get_the_title();
echo $title
?>
と、別の関数が用意されている。
全ての表記が統一されておらず、サイトのURLを示すhome_url()
はechoをつけないと表示されない。カテゴリーは配列であるが、それが関数で分からないのがすごくややこしい。
テーマ内で色々指定するファイルがfunction.phpだけ
function.phpでは
・ 投稿設定(登校時にpタグを削除する等)
・ フロント表示設定(自動で表示されるmetaタグ削除等)
・ 管理画面表示設定(メニュー非表示・ログイン時アイコン設定等)
・ 独自関数設定
・ オリジナル投稿(カスタム投稿)設定
・ 投稿画面で使える関数を設定(ショートコード)
・ ウィジェット作成
・ プラグインの詳細設定
などなど、
設定しようと思えば、なんでも出来てしまう。
しかし、これらを設定する場所がfunction.phpしかない。
カスタマイズをすればするほど、ファイルが長くなり、5000行を軽く超えるファイルになる。
そうなると、修正したいときに探すだけで一苦労だし、ダブっているソースに気付きにくいのも同然である。
管理画面上でしか設定出来ないこともあるし、どっちでも設定できることがある煩わしさ
全部function.phpで設定出来るならば移植も楽なんだけど、そうではない。
固定ページは一度管理画面で作成しなくちゃならないし、
投稿数を適切に設定しないと投稿表示がうまく表示されない。
管理画面の設定なのか、function.phpの設定なのか、はたまたプラグインの衝突なのかわかりにくい。
バグによってはこれという解決方法が無いものもあるらしく、ため息が出てしまう。
独特の専門用語が多すぎる
変に言葉を変えなくてもいいようなところを、専門用語を使ってややこしくしている節があるように思える。
デフォルトの記事の区分分けは「カテゴリー」「タグ」で、
オリジナルで設定する場合は「タクソノミー」。
オリジナルの投稿設定を「カスタム投稿」と言って、
カスタム投稿内での区分分けは「カスタムタクソノミー」。
カテゴリーやタクソノミー毎の「スラッグ(カテゴリー毎のID)名」を「ターム」。
通常の投稿枠にプラスしてオリジナルの入力枠を増やすのは「カスタムフィールド」
書いているだけでも混乱するし、言葉で言われたらもっと理解できない。
命名の仕方の統一性すらない。
「ターム」は「スラッグ名」じゃダメなの?
なぜ、「タクソノミー」と「オリジナルカテゴリー」に命名を分ける仕様にしている???
総括
ワードプレスは作り方が独特なように思う。
ノンエンジニアの為のフレームワークであり、Webデザイナーのための、コーダーの為のシステムって感じる。
PHPを学ぶよりも、一番最初にWordPressを学んだ人が、他でここの知識を転用出来たらいいんだけど、それが今のところ全くないんですよね。
WordPressの沼にハマった人は、そこから抜け出すのは大変だよなぁ。Wordpressの闇だよなぁ。
そのように思いました。