WordPressの有料テーマをつくって販売したい

という宣言をしておかないと多分ずっと作らないと思うので宣言をしておきますというのと、着手するときにいろいろ忘れちゃうとあれなので備忘録的に今考えていることをつらつらと。

これまで有料テーマに着手できなかった理由

僕は現在 MW WP Form というフォーム作成プラグインのアドオン(拡張プラグイン)と、Habakiri というテーマのアドン・スキンを販売しています。いずれもプラグインの形で販売しておりテーマは販売していません。なぜプラグインは販売しているのにテーマは販売していないのか、一言で言えばめんどくさいからです。めんどくさいんですよ、テーマ。

例えば MW WP Form ならそのフォームが設置してあるページでだけちゃんと動けば良い(動作範囲が限定できる)のですが、テーマはサイトのベースとなるものなのであらゆる状況で正しく動作・表示されなければいけません。よく WordPress でつくられた企業サイトとかで URL に ?s=あ とか打ち込んでも検索結果画面が表示されないとかめちゃめちゃく崩れた検索結果が表示されたりということがあります。請負だと「検索結果ページは仕様にありませんでした!」で乗り切れるかもしれませんが「サイトを売る」のではなく「テーマを売る」のであればそういうのはありえないと思うわけです。また、プラグインだと基本的には「機能」を提供するのでテストコードで動作検証をすることでだいたい良い感じになるのですが、テーマは「見た目」を主に提供するのでもう実際に表示して見てみないと動作検証できません。

そして、販売するからには .org に掲載されている無料テーマと差別化されていないとやっぱり売れないわけです。有料テーマをいろいろ見てみるとモリモリにショートコードが入っていたり、ページビルダーが組み込まれていたり、オプションページに設定が山盛りだったりします。.org には「テーマは簡単に切り替えられて、切り替える前に動いていたものが切り替えた後に動かなくなったりしてはいけない」という思想がある(多分)ので、基本的には機能をモリモリに詰め込みにくく、そういう意味では検証作業や開発もちょっとラクだったりします。で、僕はこの思想は正しいと思うので、テーマに依存したショートコードはダメだと思うのですが、かといって .org のテーマと同じ程度のものだと売れないし、かといって機能をつくるのもめんどくさいし、そういった諸々の理由で有料テーマをつくって売りたいけどめんどくさくて着手できない…みたいなことをぐるぐる繰り返していました。

なぜ有料テーマをつくりたいのか

ではなんでちょっと今やる気になっているのかというと2つきっかけがあります。

1つめはアドオンの販売がわりと安定してきたことです。それだけで生活できるレベルには全然ありませんが、家賃を賄える分くらいは毎月安定して売れています。フリーランスということで収入に波があったりするので、ここにもう1つ安定して売れる商品が増えれば結構良いなと。アドオンだとそのプラグインを使っている人にしか売れないですが、テーマだと WordPress ユーザーであれば誰にでも買ってもらえるチャンスがあるので、アドオンを追加していくよりまずテーマをやりたいというのもありますね。

2つめは多機能なテーマというのも結構アリなんじゃね?と思えるようになってきたことです。今 WordPress の書籍の企画に参加させて頂いており、僕は1文字も書いていないのですがその書籍用のテーマを作らせてもらっています。どこまで告知して良いのかわからないので詳細は伏せますが、そのテーマというのが、今売れているテーマとか、アフィリエイターさんのような(開発者ではない)いわゆるユーザーさんに人気のあるテーマ・機能はどういうものかというのをリサーチしたりしてつくっているので結構実際に需要がある機能を持ったものになっています。自分的にはそれが結構良い感じにできてるなという感じがしておりまして、ちょっと今までとは違う視点が持てるようになりました。WordPress はプラグインがめちゃくちゃあるというのが利点ではあるんですけど、本当にぴったりくるものはそう多くはないし、単なるユーザーさんに自分で選択して入れてくださいねというのを機能ごとにさせるというのは結構辛いんじゃないかと思うんですよね。もちろん前述したようにショートコードとか突っ込んじゃうとあとでテーマを変えたときに謎の文字列が大量に表示されるみたいになっちゃうのでダメですが。

こういうのをつくりたい(今のところ)

カスタマイザーでレイアウトやカラーをごりごりに変更できる

これは Habakiri でもある程度やっているのでもうちょっとパターンを増やすとか、そういう感じで考えています。Mimizuku でレイアウトを切り返しやすい仕組みを作ったのでそれを取り込んで応用すれば結構増やしやすいかなと考えています。

OGP、Twitter Cards

この辺は多分プラグインテリトリーに抵触するので .org に掲載する場合は NG ですが、個人的にはこれくらいはテーマが持っといても別に問題なくねと思っています。ショートコードと違いテーマ切り替えても謎の文字列が表示されるみたいなことはありませんし、必要に応じてプラグインを追加すればまたメタタグは出力されるようになるので。いや、最初からプラグインを推奨しろや、という考えももちろんあると思うのですが、Jetpack とか Yoast SEO とか All in One SEO Pack とかちょっと大きすぎると思うんですよね。それだけのためにそれ入れる?みたいな。入れたい人はテーマが出力するものは邪魔になるかもなのでカスタマイザーなどでテーマが出力するものはオフにできるようにしたほうが良いかもしれませんね。

ソーシャルブックマーク・シェアボタン

これもプラグインテリトリーに抵触するので .org に掲載する場合は NG ですが、これもわざわざプラグインでやるほどのことかなと感じています。請負でサイト作るときに僕はテーマに直接書いていますが、みなさんわざわざプラグインに切り出したり既存のプラグインを使ったりしているのでしょうか。ソーシャル系のボタンは見た目を持つので、テーマにぴったりマッチさせるにはそのテーマがボタンを持っている方が都合が良いと思うんですよね。いや、プラグインつくってそれに何パターンもデザイン持たせろや!という考えもあるかとは思いますが…。

ページビルダー

ブログじゃなくて Web サイト用のテーマを作ろうとしたといにどうしても問題になるのが固定ページをどうデザインするかということで、普通に TinyMCE でページ作っても段組みとかはできないわけじゃないですか。かといってユーザーに HTML を書かせるのも違うと思うし、まぁやっぱりページビルダーあるほうが良いよねと。でもページビルダーはつくるのが難しいし、僕は好きじゃないので別な方法できれいなページをつくれるようにする方法がないかなぁと考えています。しっくりくる考えは全く思い浮かんでいませんが、納品したデザインされたページをお客さんが文字だけ書き換える、というのはわりとあるので、「ページの雛形を突っ込むボタン」みたいなのがあると良いのかなぁ…とか考えています。

.com には Web サイト用のテーマが結構あって、それをみるとトップページについてはカスタマイザーで「この3カラムのこの部分にはこのページのタイトルとサムネイルを表示させる」みたいなのを設定できるようになっているものが結構あります。そういう感じでトップページについてはレイアウトを固定してカスタマイザーで内容を設定する、というのは結構ありかなぁとかも考えています。

あとはクイックタグみたいなボタンを TinyMCE に追加して、ポチッとすることでボタンとかコンポーネントをおけるようにしてあると便利かなと。TinyMCE で文章を書く以上のことをするのは結構辛いのですが、HTML を書くのも辛いので天秤にかけるとまぁ前者のほうがマシかなぁと…。

ブログカード

これは前述した書籍用のテーマでも実装したのですが、便利ですねブログカード。URL を貼り付けると自動的にカード型の表示がされるというやつです。WordPress のデフォルトでもブログカード機能はありますが、これは(多分)WordPress とか oEmbed 対応しているサイトの URL を貼り付けた場合にしか動作しないので、そうで無い場合にもページの HTML を解析し、title とか description とかを抽出して表示するように実装しました。これがなかなか使い勝手が良いのでこれは入れたいと考えています。ブロガーさんやアフィリエイターさんに人気のテーマには結構この機能は含まれているようでした。(でも僕が調査したテーマでは実装が微妙だったので僕が実装したもののほうが使い勝手は良いはず…!)

ライセンス

WordPress は GPL なので、テーマもプラグインも GPL にする必要があります。WordCamp や WordBench で随分認知が進んできたのではないかと思いますが、有料テーマにおいてはまだ GPL に違反したものがあるようです。例えば設置できるサイト数を制限しているとか、18禁サイトでは使用禁止みたいに用途を制限しているとか。ただ、完全に何の制限もないとやっぱり営業的にはアレなので「自由に制限なしに使えることは使えるけどアップデートやサポートのようなコードとは直接関係しない部分を制限する」という形態が海外などでみられるようです。参考:使うサイト数によって金額を変える販売方法とGPL。違反の見分け方。

ぼくもそのような形態にしたいなぁとは思うのですが、つくるのが超大変そうだし、テーマの機能をつくるのがめんどくさいとか言っているのにそんな仕組みなんてつくれるわけないので、ここはどうするか迷っています。というかそもそも有料テーマだとはいっても管理とかめんどくさいからクローズドなところには置きたくないので、GitHub に置いておきたいんですよね。で、GitHub にプッシュしたらユーザのダッシュボードに更新通知がいってアップデートできるようにしたい。となるとアップデート制限とかかけれないですしね。じゃあサポートを制限するかという話になりますが、そもそもサポートもめんどくさいんですよねぇ…。やるとしたらサポートチケットの販売ですが、どこまでサポートするのか問題とかもありますし…。FAQ ページ、ユーザーフォーラムへのアクセス権をチケットで販売する、というのはありかもしれませんが、それも1年間利用できますとか制限しようとすると手動でやるか何らかの仕組みを作るかしないといけないので、うーん…。

Composer によるパッケージ管理

これは今ちょっとずつやっていますが、もし複数テーマを販売しようとするとそのテーマ間で、例えばパンくずとか同じ機能を保つ場合が結構あると思います。それをそれぞれのテーマで重複してメンテするのはくそめんどくさいので、そういう共通部分は切り出して Composer で管理できるようにしたいなと。そうしておけば請負のときも必要なものだけ Composer で取り込めるので便利です。有料テーマを販売しているサイトをみるとどこも複数テーマを販売していますが、この辺どうしてるんでしょうね。気になる…。

マーケティング

で、多分そうやって自分が納得いくものがもしできたとしても多分売れないんですよ。僕の立ち位置だとそういうテーマをほしいユーザーには多分リーチできないので。例えば TCD さんのサイトとかみると各テーマごとに LP があって、いわゆるアフィリエイトサイトっぽい感じの LP で僕はあんまりこういうのは好きではないのですが多分こういうのはユーザーには響くものがあるのかなと思うんですよね。かといって僕はそういう文章を書く能力はないので、せめてリスティングとか Facebook に広告をだすくらいはちょっとやってみたいなぁと…。

その他

HabakiriMimizuku とテーマをつくってきて、Habakiri が最近やっと僕と全然関係のないユーザーさんの間でも使われるようになってきたと感じています。でも僕の中では Habakiri はもう役割を終えていて、そこから見えてきた課題にもっと突っ込んだ形で Mimizuku を作ったのですが、なかなか実際に仕事で使えない日々が続いていました…。レイアウト・ビューテンプレートを持つという、テンプレートまわりが標準と異なるという面もありますが、僕のコントロールできる案件でもなかなか導入できなかったのは PHP のバージョン問題が大きいです。Mimizuku は名前空間を使ったり、配列に array() じゃなくて [] を使ったりしているのですが、WordPress は最低動作要件が PHP 5.2.4 ということもあり、結構使わないといけないサーバーが 5.2 とか 5.3 だったりすることがあります。Mimizuku 使えん…。そういうのもあるので、やっぱり広くユーザー向けに売るテーマについては PHP 5.2.4、せめて 5.3 では動作しないといけないのかなぁと感じています。

まとめ

ということで色々書きましたが、つくりたいつくりたいと言いながら多分もう1年くらいは何もやれてないので、多少請負業務を制限してでもとりかかりたいなと考えています。例年仕事に波があって、落ち着いたときに自分のプロダクトを作ったりしていたのですが今年はなかなか完全に落ち着くということがなかったので、それはそれでありがたいのですが、ちょっと自分のことがやれないことに焦りや不安を多少感じているのでそういうのもあり…。ということでぼちぼちやっていきたいと思いますので乞うご期待!(誰

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく