WordPressをWebアプリケーション開発に活用する

Wordpress logo

WordPressをWebアプリケーション開発に使おうという、この本を買ってみました。

ここ3か月でやったこと

実は、ここ3か月くらい、WordPressを使って社内の情報共有システムを作っているので、WordPressのブログやCMSとしての用途を超えたポテンシャルは感じているのです。

例えば、こんなことをしています。

BuddyPressで社内SNSをつくる

Buddypress

BuddyPressは、WordPressにFacebookのようなSNS機能を組み込むプラグインです。
アクティビティの書き込みと公開範囲、コメント、お気に入り、ユーザ間の友達関係、ユーザ間のダイレクトメッセージ、通知、グループなど、SNSで必要になりそうな機能はだいたい準備されています。

有名なプラグインなので、BuddyPressの機能を拡張するプラグインも色々あります。

DW Question & AnswerでQ&A機能をつくる

Dwqa

DW Question & Answerは、WordPressにStackoverflowのようなQ&A機能を組み込むプラグインです。

質問と回答の投稿、それぞれへのコメント、ベストアンサー、投票といった、Q&Aサイトを運営する上で必要な機能があります。また、質問のタイトルを入力すると、自動的に類似の既存質問がリコメンデーションされるのも便利です。

この辺に書いてあるコードをテーマに組み込むと、BuddyPressとの連携を行うことが出来ます。

カスタム投稿タイプでFAQ機能をつくる

Q&Aがたまってくると、そこからFAQを作るという流れは、ナレッジマネジメント運営の基本ではないかと思います。
残念ながら、DW Question & Answerにはその機能はないのですが、WordPressが標準で持つカスタム投稿タイプ、カスタムフィールド、カスタムタクソノミーといった機能を使って、ブログとは別に独自のコンテンツ管理を始めることができます。
この機能を使って、FAQコンテンツを作りました。

N-gramで全文検索機能をつくる

現在作っている情報共有システムは、WordPressのマルチサイト機能を使っています。
WordPressは標準ではマルチサイトでの横断検索機能がないので、これは独自で工夫する必要があります。

一般公開するサイトであれば、Googleカスタム検索あたりを使うのが良さそうですが、今回は社内限定公開のサイトだったので、それも使えず。
ということで、独自プラグインを作って対応しました。全サイトの記事を1つのテーブルに集約し、N-gram方式の全文検索に対応させました。

PHP+MySQLでのN-gramの実装については、「Born Too Late:MySQL と N-gram による高速な日本語全文検索の実装」という記事を参考にしました。

and more…

他にも色々やっています。一緒にiOSアプリを作っているので、BuddyPressの通知をiOSデバイスにPUSH通知したり、XML-RPC APIを独自拡張したりなどです。

また、既存システムからユーザ情報を取得したりしているので、gianismというWordPressをOAuth2クライアントにするプラグインを拡張して、既存システムとのOAuth2認証も行っています。

WordPressでやるメリット

それでは、WordPressでWebアプリケーション開発をやるメリットは何があるのでしょうか?

プラグインが豊富

これは、言わずもがな。
ブログ、CMS用途だけでなく、上記のようなSNSやQ&Aといったものもプラグインで実現できるのは、WordPressならではでしょう。
ショッピングサイトなら、クレジットカード決済にも対応できるショッピングカートのプラグインとしてWelcartなどがあります。

情報が豊富

ユーザが非常に多いWordPressでは情報も豊富。WordPress公式のドキュメントであるCodexも充実しているし、Tipsも英語だけでなく日本語でもかなり充実しています。

ネットだけでなく、書籍としても色々出ていますね。
技術的な意味でのオススメは、この辺。

運用面では、こちらも。

ユーザ管理機能が標準装備

社内システム用途のWebアプリケーションを作ると、必ずと言って良いほど必要になるのがユーザ管理機能。
WordPressはこれが標準装備の上、独自の権限、ロールを作ることが出来るのも便利です。

管理ダッシュボードが標準装備

管理ダッシュボードも標準装備されています。ユーザのロールに応じたメニュー表示が自動的に行われる他、管理ダッシュボード自体のカスタマイズも可能な柔軟性は魅力的です。

アクションフック、フィルターが充実しまくり

最終的には、とにかくこれ。WordPressやプラグインのコア部分を書き替えなくても、あちこちに独自コードを埋め込むためのアクションフック、フィルターが準備されているので、WordPressやプラグインの動作をかなり自由に変更できます。(もちろん、プラグインはプラグイン開発者がどの程度、アクションフックやフィルターを作り込むかによります。)

例えば、WordPress標準のXML-RPC APIにもアクションフックやフィルターが準備されているので、独自のAPIを追加したり、既存のAPIの動作を変えたりといったことが、WordPressのコアファイルを一切書き替えずに実現出来ます。

まとめ

ということで、冒頭に挙げた書籍の話が一切出てこない記事になってしまいました。
書籍の紹介は別途また行うということにして、WordPressのWebアプリケーション開発フレームワークのポテンシャルという点においては、著者と同じ魅力を感じていると思うんですよね。

本書を読み終わったなら、読者はWebアプリケーション開発の世界でWordPressに未来があるかどうか判断できるようになるだろう。私はフルスタックフレームワークを使って何年も仕事をしてきたが、Webアプリケーション開発の世界でWordPressに未来はあると確信している。

1章「WebアプリケーションフレームワークとしてのWordPress」

とのことです。

あなたがITエンジニアなら、是非一度、WordPressをWebアプリケーションフレームワークとして眺めてみることをお勧めします。

この記事を書いた人

井上 研一

経済産業省推進資格ITコーディネータ/ITエンジニア。株式会社ビビンコ代表取締役。
北九州市出身、横浜市在住。AIやIoTに強いITコーディネータとして活動。北九州市主催のビジネスコンテスト「北九州でIoT」に応募したアイディアが入選し、メンバーと株式会社ビビンコを創業。著書に「初めてのWatson」、「ワトソンで体感する人工知能」など。日本全国でAI・IoTなどをテーマにしたセミナーや研修講師での登壇多数。