Edited at

プログラマーがWordPressが使いにくい理由を整理してみた。


きっかけ

仕事で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の闇だよなぁ。

そのように思いました。