Blog

WordPressを巡る理想と現実、あるいは誤解

Posted by admin at 9:27 日時 2014/11/26

ブコメでもすでに色々言われていて、自分のFacebookのタイムラインでも軒並み言及されているので、触れたくない理由は色々あるのだが、CMSで仕事をしている以上、反応しとかないといかんかなと思って筆を取る。そう、この件だ。

WordPressで「ささっと作る」で請けれなくなってる現状。

まとめると、WordPressは作り手にとっても楽に作れて、ウェブサイトを持ちたい人にとってもイニシャルコスト・ランニングコストともに安く済ませられる、みんながハッピーなツールだったはずが、そうではなくなってきた、と言う話。そうではなくなってきた根拠は何かと言うと、セキュリティ対応と管理画面の使いにくさ、カスタマイズ範囲の肥大化、の3点があるようだ。

セキュリティ対応は必要ですし、ランニングコストもかかります

セキュリティ対応については、WordPressの導入によく使ってきたロリポップサーバーでWordPressのログイン画面へのIPアドレス制限が実施されたことと、この対応がWebの知識のないクライアントではできず、保守費用をもらっていないのに問い合わせが来てしまうということが問題になっている様子。

http://lolipop.jp/manual/blog/wordpress-htaccess/

まあ、ロリポップの説明だと、.htaccessによるアクセス制限を強制的に導入しておきながら、ユーザー専用ページにIPアドレスを解除する機能を作らず、契約者に.htaccessファイルを直接触れというものだから、さすがにWeb制作を生業にしているものでもない限りこの対応は難しいだろう。どちらかというとロリポップの対応が不親切だと思われるので、WordPressのせいにするのはとばっちりと言うものだ。ただ、肌感覚としてこういう「セキュリティのことを考えるとWordPressの運用は思ったより大変だ」という空気の浸透は感じていて、セキュリティについての啓蒙をしてきた諸氏の成果があがってきたと言えるのではないだろうか。ブコメで「以前からそうだっただろ」というツッコミもあるが、いやなかなかどうして、最近までバージョンアップの必要性など理解されなかったものだ(現に件の記事の筆者は、WordPressの自動アップデートを止めようとしてその難しさにごちているが、止める方が間違いである)。

CMSをウェブサーバーに置くことで得られる利便性は、引き換えに管理の手間をもたらす等価交換だ。CMSの面倒を見たくないのであれば、便利なシステムを捨ててHTMLを手打ちするか、Dreamweaverの様なソフトでHTMLを管理すれば良い。ここで、実際に「HTMLの方がマシだわ」という結論に達するのであれば、そもそもCMSを導入すべき案件だったのか、ということになる。おそらくそうではなかったのだろう。CMSはウェブサイトを作るためのツールではない。ビジネスの課題を解決するために導入するものだ。という話は、ここのところ中小企業向けのセミナーなどでもお話しさせていただいているが、まあ、多くのウェブ制作者にとっては釈迦に説法であろう。

「HTMLで良かった」という人はそれでよいが、実際にCMSが必要で導入したいクライアントがいないかと言うとそうではない。その場合はバージョンアップをきちんと行なう、パスワードの管理を正しく行なう、などの基本的な管理は必須である。ウェブのプロは正しくその必要性を伝えられるくらいの知識は必要になるだろう。サーバーについても、ワンコインの価格帯を企業のウェブサイトで使うのは正直止めてほしい。バックアップ機能が付いていて電話サポートもあるCPIのようなサーバーを使えば、保守費用ももらってないのにサーバーに関する問い合わせが来ちゃって大変、という問題は回避できる。WordPressというアプリケーションの管理まで委託したいのであればAutomatticが自ら提供しているサービスや、WordPressのプロフェッショナルが提供するサービスを使ってお金で解決するのも手だ。

それらの価格帯は全く合わないという場合は、そもそもインストール型CMSの導入は合わないと言うことなので、オープンソースCMS導入ほどの自由度はないが、JimdoWeeblyを使うことも検討に値する。これらのサービスを使ったとしても月額ワンコインでは収まらないので、ロリポップの価格帯で運用しようと言うこと自体が無茶だと言うことは言える。

オープンソースCMSを導入したら誰かが保守しないといけない

まとめとしては、オープンソースCMSは自己責任の原則であるということだ。無料で使えて責任からも開放されるなんてうまい話があるわけがない。それでも、自己責任であるが故に、サービス提供者に決められた金額を払うだけでなく、自社での対策やプロへの保守依頼も含め、柔軟に様々な選択肢が取れる。これはクローズドなサービスに比較してとてつもなく大きなメリットである。

余談だがHTML手打ちFTPアップロードも、その昔ガンブラーが大流行したように絶対安全と言える手段ではないのでお間違えなく。

WordPressは使いにくい?

個人的にはWordPressが使いにくいとまでは思わない。昔(2.x時代)はもっと使いにくかったが、いまの管理画面はきちんとユーザーテストも行なわれた上で設計されている。当ブログの運用も、快適にさせてもらっている。ただ、容易に使いにくくすることはできる。プラグインによる拡張性の副産物というか、管理画面をどんどんごちゃごちゃさせていこうと思えばかんたんにできてしまう。エディタ以外を隠してすっきりした画面に見せる「執筆集中モード」も、根本的な解決にはなっていないと思われる。テキストに画像添付できれば良い、程度の単純な記事の投稿画面と言う点で、他のブログサービスよりも複雑になっているのは否めない。

一方で、これだけ複雑な投稿画面でも、ちょっと複雑なレイアウトのページになると編集すらままならない。ビジュアルモードでの編集はNGで、テキストモードに切り替えてHTMLを直接編集してください、そうでないとページのレイアウトが崩れます、みたいなWordPress導入話もよく聞く。

私が企業や大学のウェブサイトにconcrete5を推す理由のひとつがここにある。複雑なレイアウトのページでも、実際に簡単に編集が可能だ。下記動画は英語だが、動いている操作を見るだけで、WordPressの様なWYSIWYGエディタどーん、ではないパワーを感じていただけると思う。

もちろん、サイトの運用方針によってこのような編集方法が向いている場合と、そうでない場合がある。クライアントにconcrete5のデモを見せると、はっきりと「これが欲しかったんだ!」と「この自由度は求めているものではない!」に分かれる。後者であれば、カスタムフィールド型のCMSが適しているので、そちらを奨めることになる。

予算に合わないカスタマイズはすべきではない?

WordPressをフルカスタマイズしてブログではなく企業サイトを構築したうえに、検索機能や会員ログイン機能などをプラグインで追加すると、予算が大きくなる、と言う。それはそうだろう。カスタマイズの費用が出ないのであれば、標準機能で間に合わせることになる。ところがWordPressをCMSとして見ると標準機能はかなり貧弱である。これは、WordPress自体がコアは肥大化させずプラグインで拡張性を担保するという方針のため、意図しての結果と見ることもできるが、個人的には企業サイトのためのCMSとして使うには機能不足であると思う。

特に、ページ単位での権限設定ができない、コンテンツの作成権限と承認権限の分担が記事の追加時のみで一度公開してしまうと承認機能がない、という2点は致命的。ページのバージョン管理機能(リビジョン)も、本文のみというのは正直かなり痛い。リビジョン機能で過去バージョンに戻したいという気にならない。ユーザー管理機能も最低限しかない。このあたりが全て標準装備されていて、メール承認の会員登録機能とログインユーザーのみにコンテンツを公開する機能まで揃っているconcrete5を企業サイト用途に採用する理由は大きい。

一方、concrete5をやっていて思うのは、WordPressはブログとしては他の追随を許さぬ高機能だということだ。メディアサイトを構築したいなら、ほぼ一択と言っても良いのではないか。ひとつだけを見て何でもできると思うより、このような強みを理解して使いこなすことが必要ではないだろうか。

コードを書いてカスタマイズするか、書かずにカスタマイズするか

また、カスタマイズの予算感という面では、WordPressのカスタマイズはコストがかかるというのは事実で、実際concrete5の方が安くできることが多い。先日開催したconcrete5 × サーバーセキュリティ勉強会にて、コンクリートファイブジャパンインテグレートパートナーの杉山さんが発表されていたのもまさにその点で、カスタマイズにプログラミングスキルが不要で、多くの場合GUIで可能ということだ。

WordPressの設計思想として「コードを書かずに簡単に」だと勘違いしている人が意外に多いのだが、いったいどこで仕入れた情報なのだろうか。「CODE IS POETRY」のスローガンを引き合いに出すまでもなく、WordPressは「コードを書く」というのが基本的な文化であり、設計思想だ。コードを書くことで自由にカスタマイズできることが、オープンソースの文化とも合致して、これまで広まってきたのだ。この点は、過去の記事でも触れた。

一番分かりやすいWordPressとconcrete5のカスタマイズ方法の違い

「コードを書けばカスタマイズできる」と「GUIでカスタマイズできる」は相容れない方針で、それぞれにメリット・デメリットがある。

concrete5のような「コードを書かずにカスタマイズできる」を追求すると、スピーディーなカスタマイズが可能だし、工数も減る(クライアントと分担することさえ可能だ。トップページにバナーの追加が必要?画像ブロックをドラッグ&ドロップで配置すればいいんですよ!やってください!)。その分だけユーザーインターフェースが高機能になり、使い方を覚える必要がある。また、バージョンアップするとインターフェースが変わることもあるため、人間の頭をバージョンアップして新しいバージョンに着いて行く必要がある

WordPressのように「コードを書けばカスタマイズできる」思想であれば、操作方法を覚えなくて良いし、バージョンアップでUIが変わってもカスタマイズ方法は変わらない。この点は、WordBenchでWordPressの操作方法を覚えよう、という内容の勉強会がほとんどないのもうなづけると言うものだ。ただし、コードをバージョンアップして新しいバージョンに着いて行く必要がある。もちろん、だからこそWordPressではコードの後方互換性が重視されているわけだが、自身がどちらを採用するかは、一考の価値があるのではないだろうか。

理想と現実のギャップを埋めるには

作り手にとっても楽に作れて、ウェブサイトを持ちたい人にとってもイニシャルコスト・ランニングコストともに安く済ませられる——もちろん、それが理想なのは確かだ。ただ、WordPressで企業サイトを作るという点に限って言えば、そこには大きな溝があるのは間違いない。concrete5や他のCMSを選定することで、ある程度その溝を埋めることは可能だと思う。また、concrete5を導入する際の費用を少しでも抑えるための取り組みも、コンクリートファイブジャパン株式会社として各ホスティング事業者とも連携しながら取り組んでいる。とは言っても、運用費用が月額ワンコインというのはあまりにも非現実的な要求なので、理想の方にもすこし現実をみていただく必要があるだろう。

Web制作者がCMSを適切に選択していこうという機運は、実はかなり高まっていて、今週末のMTDDCでもCMS座談会という枠があり、Movable Type, Drupal, WordPress, concrete5のコミュニティからメンバーが参加し、討論を行なう予定だ。私も出演する。

また、同日にはOSC 浜名湖2015 プレカンファレンスが開催され、こちらでもCMSプロレスという企画が行なわれる。

似たようなプロレス仕立てのイベントでCMSどうでしょう〜MT・WP対決列島札幌編〜というイベントも2015年1月に。

名古屋でもCMS FUNというグループが立ち上がり、CMSに関する情報を共有していこうと言う取り組みがスタートした。初回の勉強会が2015年2月に開催される予定だ。

今後もこのような勉強会は各地で開催されると思う。WordPressが果たした功績は大きいが、期待が過度に高まっているのもWeb制作者は実感しているのだろう。今後は、クライアントの要望や、各々の提供できるサービスや強みに応じてCMSを選択するのが当たり前の時代になるのではないだろうか。

おまけ:WordPressについていま思うこと

プラグイン選定の難しさは、コミュニティで解決できないのか

大きな開発者コミュニティを持つWordPressには膨大なプラグインが存在するが、基本的にコードレビューは行なわれていないため、動くかどうかは他のユーザーからの評価をアテにするしかない。また、良いプラグインであっても、日本語訳が存在する確率は低い。この点、企業サイトに必須な機能がコアでカバーされているconcrete5が安心だなと思うのは、コアに含まれている範囲は日本語訳されているということがある。

一案として、WordPressコミュニティは企業サイト構築など特定の用途向けにどのプラグインを使うかを選定し、基本的なセットをDrupalのディストリビューションのように一括で導入する方法を用意してはどうだろうか。また、その基本セットは他のプラグインより優先してローカルのコミュニティがコアと同レベルに翻訳に取り組み、もしメンテナンスが止まればコミュニティとして代替プラグインを選定するかメンテナンスを継続させる。この取り組みで、かなりの課題が解決できると思うのだが。

WordPressコアの進化に期待

コアのバージョンアップの際に、プラグインやカスタマイズがもし対応していないと、エラーが起きてサイトが真っ白になる…こういう経験をした人は多いようだ。PHPにおいてこの点は解決済みで、必要な時に必要なファイルだけ読み込むというオートロードの機能があるので、何か1か所問題があったからといってサイト全体が止まると言うことはない。また、致命的なエラーがあっても画面を真っ白にせず、例外を投げて処理を中断し、エラーメッセージを出すと言うこともできる。したがって、もしconcrete5のアドオンで問題が発生したとしても、サイトは生きているので、アンインストールするなりアドオンのバージョンアップを行なうなりの対策が取れる。WordPressがそうならないのは、コードがレガシーだからということに尽きる。オートロードを使っていないため、フロントも管理画面も通してどのURLにアクセスしても必ず全てのファイルが読み込まれてしまう(そのため1か所問題があるとサイト全体が止まる)。ここは今後の進化に期待と言ったところだ。他のPHP製のCMSはここ数年、コードをモダンにする作業の苦しみを味わっている。後発のWordPressは先人の知恵を活かしてスムーズにPHPの進化を取り入れてほしいものだ。

個人的には、ここ最近のWordPressのメジャーバージョンも開発者向けAPIの細かい改善が主で、新機能のリリースが途絶えている印象がある。この停滞感を払拭するためにも思い切った新機能のリリースを期待していて、その目玉とも言えるのがJSON REST APIなのであるが——

JSON REST APIへの過度な期待が心配

ブコメで「WordPressの管理画面の使いにくさについては、将来的にREST APIでオリジナルのを作れるようになる」というものがあった。当ブログでも取り上げたことのあるJSON REST APIだが、あくまでプログラマ向けの機能であって、XSSやCSRFの対策を自力でしないと行けないと言うことになるためハードルは相応に高い。過度な期待は禁物だ。


Share this entry

Blog Entry Topics