1週間ほど前、WP Tavernにて”Wallace: A Free WordPress Theme Built on the WP REST API and Angular“という記事が上がっていたので、実際にインストールして触ってみた感想を記す。
前提知識
WallaceはBradley Kirbyという人が作ったWordPressテーマ。REST APIとAngular2をベースに作られている。
これまで「REST APIが来る!」ということが散々いわれてきたが、ちゃんとしたプロダクトの事例が少ないので、その真価は長い間不明なままだった。その意味でようやく誕生した「普通のテーマ」ということになる。
実際の様子
このサイトCapital Pのローカル開発環境にインストールした様子をYouTubeにあげてあるので、興味のある方は見てほしい。
エラーで止まってしまった。エラーを起こしているのはJetpackの通知機能なので、ログインしている状態(=アドミンバーが出ている)と相性が悪いのかもしれない。
Pros & Cons
まず、賞賛すべきところから。
- 切り替えがスムースである
- 最新のツールセットで作られており、チャレンジ精神に溢れている
そして、改善すべきところ。これはたくさんあるので、二項目に分けて書く。
Wallaceに固有の問題
- 動かない。理由はなんであれ、動かないのはよくない。著名なプラグインとの統合は想定に置くべきである。
- ウィジェット、メニューに対応していない。
- プラグインに対応していない(っぽい)。
どちらかというと、コンセプトモデルのように感じるので、これらは今後改善していくことだろう。
WordPressに固有の問題
これはたくさんあるので、さらに項目別に書いていく。
サーバサイドレンダリングができない
SAP(Single Page Application)はHTMLソースとしてはほぼ空っぽになるので、Googleインデックス問題(=検索エンジンによって価値のないページと認識される)が存在する。これを解決する方法としてNodeJSならサーバサイドレンダリングがあるが、PHPだとどうすればよいのだろうか? 個人的にはTwigがJSフレームワークの補完的存在へと進化してくれると助かるのだが。
いまのところ、「二度手間承知でPHPでもJSでも似たようなテンプレートを書く」か「サーバでHTMLをすべてレンダリングする」の二択しかないように思う。
親子テーマへの対応
Angularに限らず、ReactでもテンプレートをHTMLやJSに記載するアプローチを取るが、親子テーマにした場合、どうやって継承するのかという問題がある。
テーマをすっぴんのまま使っている人がどれぐらいの割合なのか筆者は知らないのだが、ちょっとした修正を施すことさえできないようだと、WordPressの魅力は落ちる。それならば、Wixで構わないだろう。
プラグインとの連携
プラグインのいくつかはなんらかのフックを使ってフロントエンドにはUIを表示する。それはページの場合もあるし、画面の一部を構成するコンポーネントの場合もある。その多くはDOM操作としてjQueryを利用しており、これはReactやAngular2が採用しているVirtual DOMと相性が悪い。断りもなくDOMを変更してはいけないのだ。
お問い合わせフォームもまともに動かないようなテーマは採用されない。豊富なプラグインなくしてWordPressが輝くことはできないのだ。
ただ、これはWordPressにスタンダードが存在しないことが原因のようにも思う。たとえば、WordPressにはDatePicker一つ同梱されていないので(※実際はされているがスキンが入ってないので動かない)、多くのプラグインがなんどもjQuery DatePickerを読み込むような事態になっている。
根本的なバリューの欠如
REST APIとJSフレームワーク(Angular, React, VueJS)でサイトを作ることが「これから来る!」と言われ続けているが、もしその価値が「早さ」でしかないならば、作り方が面倒になるデメリットの方が大きい。
それにそもそも、「早さ」自体は別のアプローチ(HTTP/2、各種高速化など)でも解決できる問題だ。
よくAmazonの調査を引き合いに出して「0.1秒遅くなると売り上げが1%下がる」ということが言われ、かの有名なヤコブ・ニールセン博士も数字こそ違えど同じ趣旨のことを言っている。
それは確かにそうなのだが、月に10万円の売り上げしかないのならば、まずは売り上げを月100万円にするのが先決だ。それを可能にするのはSAP化による速度向上ではなく、たとえばAffiliateWPのようなプラグインの採用による機能追加だろう。
そして、WordPressユーザーの多くが取り組んでいるのは、月商10億円のサイトのCVRを上げることではなく、「自分が作ったブランドやアイデアをどうやったらビジネスにできるのか」である。そもそも前者のような環境では、WordPressから別のフレームワークへの乗り換えを検討する段階にあることが多い。
結論
さて、ネガティブな情報が多めになってしまったが、筆者はREST API + JSによるテーマ作成に反対しているわけではない。自身のサイト破滅派でもREST API + Angularでの機能開発を行なっている。
やはり鍵となるのは、テーマ作成ではなく、モバイルアプリケーション+Webサイトの同時作成と、プラグイン統合だ。これらは簡単に実現できるものではないが、もし実現すれば、WordPressはインターネットにおける強力なツールであり続けるだろう。
それでは最後になるが、これからのWeb開発スタンダードといえる作成方法を試みた作者のBradley Kirbyには拍手を送りたい。