WordPressをCMS以上のツールとして使うための、外部のWebAPIと連携させてコンテンツをより彩る方法について。


こんにちは。
@khoshinoこと、星野邦敏です。

簡単な自己紹介としましては、現在は、株式会社コミュニティコムという会社の代表者として、自社で運営している約300サイトの稼働を見ていたり、同時並行して常時だいたい10件前後のWordPress案件の構築請負をさせていただいたり、最近では、お声掛けいただきまして週1回くらいの割合で色々な所で講演をしたり、同じくお声掛けいただきまして書籍の執筆などをしています。
その他に、ネスト赤羽IT勉強会プログラミング実習室などといった月1回ペースで主催している無料で参加できるIT系の勉強会が複数あったり、フットサルチームを立ち上げたりしています。(フットサルは大徳さんに任せっきりで最近ほとんど行けていませんが、シエスタ赤羽というフットサルチームです。)

WordPressについての活動では、WordPress日本語サイトのイベントカレンダーの更新をしたり、WordPressのイベントであるWordCampWordBenchのスタッフやスピーカーとして関わっています。

この記事は、taiさんの声掛けで始まりました、12月1日から12月25日まで毎日ブログを繋いでいくWordPress Advent Calendar 2011の24日目の記事として書いています。

昨日の浅野さんの記事WordPressを使ってショッピングサイトを構築 » OliveDesign~From Design to designからバトンを受け取りまして、WordPress Advent Calendar 2011も残すところ、あと2日、トリから2番目ということで、この23日間で書かれた23人の皆さんの記事を拝見しまして、重ならない内容として、自分はWordPressの活用方法と技術的なカスタマイズについて、書こうと思いました。

そもそもWordPressって何?

さて、さっそくですが、WordPressって何でしょう?皆さん、どのような意識で使われていますか?
ブログツール?それともWordCamp福岡マクラケン直子さんがお話されたようにパブリッシングツール?日本のWordPressのコミュニティはリアルのイベントも多いことから出会い系ツール?(笑)
色々な考えが、意識的にせよ無意識的にせよ、あると思います。

さらに使う動機も様々だと思います。
仕事でWordPress決め打ちの案件が来たからとか、オープンソースでライセンス費が掛からず無償で使えるからとか、ブログ書こうと思って調べてたまたま知ったとか、カンファレンスや勉強会で知ったとか、人に勧められたからとか、キッカケは色々だと思います。

そのどれも正解だと思いますが、ここでは、WordPressをCMS(コンテンツ・マネジメント・システム)という意識で使い、さらに、その上で自分が入力した以上のコンテンツを表示させる方法について、以下で説明したいと思います。

WordPress日本語サイト

WordPress日本語サイト

WordPress日本語サイトにも、「WordPress (ワードプレス) は、オープンソースのブログ/CMS プラットフォームです。」とトップページの冒頭に書いてあります。

では、この「CMS」とは何でしょうか?
私の理解では、CMSとは、コンテンツマネジメントシステム(Content Management System)の略で、Webサイトの文章や画像などのコンテンツを入力する管理画面を持ち、その管理画面からコンテンツの追加編集をすることで、Webサイトを運営する仕組みのことです。

CMSは、管理画面から入力したコンテンツを、サイトとして表示させるので、データベースを持ち、そのデータをプログラムで出力表示される仕組みが一般的です。

WordPressについても、CMSですから、裏側に管理画面を持っていて、そこで入れた文章などのコンテンツはMySQLというデータベースに格納した後、その出力表示をPHPというプログラムで行なっている、という仕組みになっています。

Historical trends in the usage of content management systemsを見ると、現在の世界のトップ100万サイトにおいてのCMS導入のシェアは、現在、約3割となっています。

Historical trends in the usage of content management systems for websites

Historical trends in the usage of content management systems for websites

CMS導入のシェアが約3割と言うと少ないように感じるかもしれませんが、これは既存サイトを含めた数字であり、既存サイトからのリニューアルや、新規サイトの構築などだけで集計したら、導入比率はもっと高くなるでしょう。既存サイトを含めたCMS導入のシェア率の推移で見ても、この1年で5%もシェアが伸びており、現在も増加傾向だということは、上のURLから分かると思います。

では、なぜWebサイトの制作にあたって、WordPressを始めとしたCMSの導入が増えているのでしょうか?

従来のWebサイトは、HTMLとCSSだけで作られることが一般的でしたが、誤解を恐れずに言うならば、この運営では以下のようなデメリットがあると思います。
(1)サイトの更新者がHTML等のWeb制作知識を理解している必要がある。
(2)複数人での更新の場合、最新版のファイルをその都度確認する必要がある。
(3)サイトデザインをリニューアルする際に、過去のコンテンツの移行に時間が掛かる場合が多い。
(4)追加機能の実装を柔軟に行いづらい。
(5)更新の都度、制作業者に依頼するか、社内の制作者に頼まなければならない。
などのデメリットです。

一方で、CMSを使ってWebサイトを運営すれば、上記のようなデメリットを解消できます。
すなわち、サイト更新者がWeb制作知識がなくても更新でき、複数人での運営も簡単です。また、その都度の要望に応じて、デザインや機能を柔軟に変更できます。さらに、CMSを導入すれば、サイトの更新にあたって、その都度に業者に依頼する必要がなくなるため、サイト更新の工数を減らすことが可能です。したがって、CMSの導入によって、サイト発注者はWeb制作の価格を比較的安価にかつ高機能なモノを発注しやすくなり、サイト制作業者としてもCMSの設置や制作や管理に集中できる、という両者にメリットがあると思います。

まとめると、CMS導入のメリットは、以下の通りです。
(1)Web制作者とサイト更新者の分業が可能となり、制作者はWeb制作に集中でき、サイト更新者はコンテンツ(文章や画像など)の更新に集中できる。
(2)複数人でコンテンツの更新ができ、かつ、それぞれの更新者の権限を分けることができる。コンテンツ入力者とサイト公開承認者といったワークフローの構築も可能。
(3)コンテンツはデータベースに入るので、サイトデザインとは切り離されており、Webサイトのリニューアルも比較的簡単に行うことができる。
(4)多くのCMSには、コアファイルとは別に、プラグインやモジュールの仕組みが用意されているので、追加機能が実装しやすい。
(5)サイト更新者が自由にページを追加編集できるため、更新の都度、Web制作業者が依頼する必要が無くなり、更新の際の工数を大幅に減らすことができる。
以上のようなメリットがあることでしょう。

一方で、CMS導入のデメリットとしては、多くのCMSでは、PHP・Ruby・Perl・Pythonなどといったプログラムと、MySQL・PostgreSQL・SQLiteなどといったデータベースで成り立っているため、各CMSの仕様に応じて、それらが動くサーバー環境が必要です。また、データベースから読み込む形式の動的生成をするCMSにおいては、サーバー負荷が掛かりやすく、アクセス数の多いサイトでは出力表示の高速化についても検討する必要も出てくるでしょう。さらに、当然ながら、各CMSの導入には、そのCMSの特徴やカスタマイズ方法について理解しておく必要があるという学習コストが掛かります。そのCMSが採用しているプログラムとデータベース(WordPressにおいてはPHPとMySQL)を知らないよりは知っておいた方が導入にあたって柔軟に対応できるのは明らかですので、その分の学習コストも掛かるかもしれません。

HTMLやCSSだけでWebサイトを作る場合と異なり、これらのデメリットはありますが、最近のサーバー環境では、共有レンタルサーバーでもプログラムやデータベースは動く環境にありますし、サーバー負荷はキャシュなどの仕組みで対策もあります(WordPressではキャッシュを作るプラグインもあります)。また、学習コストが掛かるのは、考え方を転換すれば、それが自分の優位性にもなるわけですから、関連サイトを見たり、多くのCMSでは専門の書籍が出版されているので読んでみたり、導入事例の多いCMSではユーザー会やコミュニティや開発元のセミナー等があるので参加してみると、詳しくなれるでしょう。WordPressを題材として、PHPやMySQLといった汎用的なプログラムやデータベースを学習できるとプラスに考えることも出来ると思います。

いずれにしましても、Historical trends in the usage of content management systemsの数字などからも明らかなように、Webサイトの新規制作だけでなく、リニューアル案件においても、CMS導入は現在増加傾向にあると思います。
その中で、世界のシェアの過半数以上で、WordPressが採用されています。つまり、数多くの種類のあるCMSといった業界において、WordPressという、たった1つのCMSがその市場の過半数以上を占めているという現状があります。特徴のあるCMSもありますので、市場規模だけでWordPressの採用がベストという判断にはならないと思いますが、どのCMSを採用するにしても、そのような市場のシェアのあるCMSを、知らないよりは知っておいた方が、CMS選定の際の対内外いずれでも良い比較対象となるのではないでしょうか。

なお、CMSを横断的に知るには、酒井さん達が行なっているWeeklyCMSや、堀越さん達が行なっているCMSビズ、荻澤さん達が行なっているCMSカフェ(今見たらサイトはリニューアル中のようでしたので、CMSカフェのFacebookページにもリンクしておきます。)、オープンソースCMSに限定されますが宮原さん達が行なっているオープンソースカンファレンスなどが、いずれも無料ですし、良いと思います。

先日、マイクロソフト品川本社ビルで、CMSカンファレンスがあり、私もWordPressについて40分間、お話ししました。他のCMSの動画もYouTubeにアップロードされていますので、もし良かったらご覧ください。


WordPress(星野邦敏さん)CMSカンファレンス with WeeklyCMS on Microsoft

WordPressをCMS以上に使う方法

さて、ここまで、WordPressは、世界的にシェアのあるオープンソースのCMSである、ということを説明してきました。

WordPressに限った話ではありませんが、CMSでは、コンテンツの入力部分と、サイトデザインや機能拡張が切り離されている場合がほとんどですから、Webサイト構築を効率的に行うことができます。
WordPressに関しては、サイトデザインは「テーマ」、機能拡張は「プラグイン」で行うこととなっています。

このような構造となっているので、文章や画像などのコンテンツを入力することに集中したい、どのようなサイトでも、WordPressで作ることができます。実際に、上記の動画の中でも解説しています通り、WordPressはブログだけでなく、企業サイトや学校サイトやマガジンサイトやコミュニティサイト、3.11の震災の時のスピーディな情報公開などにも使われた事例があります。

しかしながら、それだけでは、WordPressを使う理由としては、まだ弱いかもしれません。

特に、最近では、無料でブログサービスや企業サイトが作れるASPサービスも豊富ですし、CMSの中だけでなく、そういったASP型のサービスと比較される機会もきっとあると思います。(ここで言う、ASP型のサービスとは、他社の提供するサービスのアカウントを取得して、そのアカウントの中でブログやサイトを構築するサービスを指しています。)
このような場合、発想を持って進まないと、場合によっては、提案の優位性が、オープンソースだからラインセス費用が掛からない等といった価格勝負だけになってきて、低価格構造になる可能性もあります。
そうならない提案の優位性を生み出す方法として、いくつもの方法があると思います。今回は、その数多くある優位性を生み出す方法の中から、一つ、サーバーインストール型CMSである特徴を活かして、外部のWebAPIと連携させてコンテンツをより彩ることで、他には無い特徴を出す方法を、ご紹介します。

例えば、外部のWebAPIと連携させてコンテンツをより彩る一つの例として、
WordPressの記事本文に書いたテキスト情報を自動で解析して、自動で周辺のお店情報を出す例
を作りました。

具体的に行なっていることとしては、WordPressの投稿記事の本文に文章を入力するだけで、自動でその投稿記事に書かれている地域名から、緯度経度情報を取得して、その周辺のお店情報を表示させる、ということをしています。

WordPressの記事本文に書いたテキスト情報を自動で解析して、自動で周辺のお店情報を出す例

WordPressの記事本文に書いたテキスト情報を自動で解析して、自動で周辺のお店情報を出す例

詳しい手順は、WordPressの記事本文に書いたテキスト情報を自動で解析して、自動で周辺のお店情報を出す例に書いた通りですが、行っている手順は以下の通りです。

WordPressの記事本文に書いたテキスト情報を自動で解析して、自動で周辺のお店情報を出す手順
(1)
WordPressの記事本文に書いた情報(the_content内)を、Yahoo!デベロッパーネットワークの提供している日本語形態素解析WebAPIでWordPressの記事本文の中のテキスト情報を形態素解析して名詞のみを抽出。
(2)
その抽出した名詞をコンテンツジオコーダAPIに渡して分析して地域名を抽出。(1)で最も頻度の高い名詞で、かつ、地域名と認識されたキーワードの住所と緯度経度情報を抽出。
(3)
(2)で抽出した緯度経度情報をリクエストパラメーターとして、ローカルサーチAPIに渡して、レスポンスフィールドとして、Yahooロコに登録している、その緯度経度情報から二点間距離で近い順で上位20件のお店情報を、記事本文の後に自動で出力表示。

上記はただの1つの例ですが、このように、WordPressをCMSとしてコンテンツの入力ツールとして使うだけでなく、そこで入力したコンテンツを外部と連携して、より多くのコンテンツがあるように実装することも、WordPressを使えば簡単に行うことができます。
なお、この際の注意点として、最近では、Googleの検索システムが優秀に進化していて、外部のWebAPIを使うだけだと、コンテンツが無いサイトと看做されてしまう傾向にあり、一概には言えませんが、その多くは検索エンジンでは上位表示されないことがほとんどです。そこで、コンテンツを持ちつつも、外部のコンテンツと連携する、という位置付けが良いでしょう。

このように、自分達でコンテンツを入れるだけでなく、外部のWebAPIと連携させてコンテンツを彩ることで、
自分の運営しているWebサイトの情報を少ない手間で多くの情報を便利に閲覧できるサイトの構築が可能になるかもしれません。それによって、自分の運営サイトのPV数が増えて、広告収益やユーザー数が増えることも考えられます。
また、請負案件においては、このような提案を絡ませることで、他のCMSやASPサービスには無い独自性を持たせて、価格帯勝負以外のフェーズで提案することが可能になることも考えられると思います。

WordPressを使うと、このようなWebサイトの構築が本当に簡単に出来ますので、この点においてもWordPressをお勧めしておきます。

どう簡単かと言いますと、例えば、上記の例では、
まずは、WebAPIの仕様に基づいたリクエストパラメーターのXMLを、simplexml_load_file関数で分析(パース)して、それをecho関数またはforeach関数でレスポンスフィールドを出力表示しています。それを、WordPressのテーマとして書くか、プラグインとして実装するか、して、あとは、WordPressの管理画面と連携させて、各記事ごとに出力表示されるデータが変わるようにする、というだけです。
このような実装は、本当に簡単で、例えば、上記の例ですと、実装に掛かった時間は、多分1時間くらいです。誤解を恐れずに言いますと、考え方によっては、約1時間の実作業でコンテンツを何倍にも見せることが可能になるとも言えると思います。WordPressを採用すれば、そのようなことができます。

上記は1つの例ですが、その他にも、
日本の142地域の今日・明日・明後日の天気予報と最高気温&最低気温をショートコードで表示するなども、この1つの例ですし、
Picasa Web Albums Data APIPanoramio APIと連携させれば、その周辺の写真を自動で表示させることができますし、
Flickr ServicesYahoo!デベロッパーネットワークの画像検索APIと連携させれば、任意のキーワードに関する画像を肖像権や著作権の問題の無い形で自動で取得して表示させることもできますし、
その他にも、商品情報やホテル情報やカフェ情報や住宅情報や動画情報やブログ情報やオークション情報やニュース情報やTwitter情報やFacebookファンページ情報など、色々なコンテンツと連携を図ることが、WordPressではとても簡単です。

これらは、サーバーインストール型のCMSで、かつ、PHPやMySQLといった利用者の多いプログラムやデータベースで構成されているので、出来る特徴の一つと言えます。
無料でブログサービスや企業サイトが作れるASPサービスでは、WordPressほど何でも出来るという柔軟なカスタマイズは難しいと思いますので、こういった点も、WordPressを選定しやすい特徴の一つになると思います。

WordPressやITスキルやビジネスについて学ぶコミュニティ

では、次の段階として、このようなWordPressのカスタマイズ方法やビジネスモデルについて、どのように習得していけば良いの?という話になるかと思います。

上記のようなお話をすると、最近では、星野さんは技術側の人だから、という話をされることが、たまにあったりもします。

しかしながら、先日にブログ記事として書かせていただきましたWordCamp Tokyo 2011に参加すると、きっとある良いこと。や、今月に東京都市大学さんでお話させていただいた時の動画WordPressスマートフォン対応&サイト運営マネタイズ 東京都市大学(1/4)でお話させていただきました通り、私自身は、IT関係の学校に通ったこともなければ、IT関係の企業に勤めた経験もありません。

WordPressスマートフォン対応&サイト運営マネタイズ 東京都市大学(1/4)

どうやって、WordPressやITスキルを身に付けたかと言いますと、書籍やサイトを見て勉強したということもありますが、多くは、実際に人とお会いして、その交流の中で身に付けていきました。
WordPressはオープンソースならではの、そのような交流が盛んです。具体的なWordPressイベントは、WordPress日本語サイトのイベントカレンダーを見ると載っていると思いますので、近くの地域で行われる際には参加してみると良いと思いますし、近くで開催がなければ自分で手を挙げて主催していると良いと思います。

オープンソースのコミュニティは周りがサポートしてくれるので、特にWordPressの場合は応援してくれる傾向が強いので、自分は詳しくないからと臆せずに積極的に手を挙げる方が良いと感じています。そのような集まりに参加していると、自分に足りないスキルも分かる上に、その自分に足りないスキルを既に持っている人から、そのスキルを身に付けるための機会を知ることができて、自分から手を挙げて取り組めばその機会を活かすことが出来ます。

その辺りについては、このWordPress Advent Calendar 2011の13日目の西川さんの記事WordPressのコミュニティに参加することになった経緯と得たものが参考になるかと思います。

また、WordPressやITスキルについては、書籍やインターネット上にたくさんの情報があるかと思いますが、ビジネスモデルなどの話は、実際に会って話をしないとインプットが難しいのではないかと、自分の経験では思います。
WordPressのコミュニティではそういうことも、話の流れから知ることが出来たりもしますので、お勧めです。
少なくとも、フリーランスの方でたまに見聞きします「仕事が無いので仕事をください」等の趣旨の不用意な発言をする機会は無くなると思います。

WordPressのコミュニティは、意外な再会もあったりします。
WordPress Advent Calendar 2011を書いている人の中では、例えば、@Stocker_jpのなつきさんとは、自分の記憶が正しければ、2~3年くらい前に別の所で知り合っていて、個別にも何度か飲みに行ったりしていました。当時はブログを書かれていなかったと思いますのが、今では独立されて、Stocker.jpという、IT関係について詳しいブログを書かれていて、WordCampやWordBenchなどでも再会する機会がありました。

そういった色々な出会いの中から、楽しく自分のスキルを向上させたり、結果的に仕事に繋がっていったりする点も、WordPressの良い点だと思います。

ということで、WordPressはコミュニティが盛んであるという点を、最も良い点として、挙げておきます。ぜひ、WordPressのイベントであるWordCampWordBenchの情報もチェックしてみてください。
私もよく参加していますので、例えば、この記事の外部のWebAPIとの連携の仕方が分からないよ、ということでしたら、実際にお会いしてお話をする中で、自分の行なっているカスタマイズ方法をお伝えすることが出来ると思いますし、その話をしている途中で他の人から横槍が入って、より良いカスタマイズ方法の提案があったりして、その質問者の方だけでなく、私自身のフィードバックにも繋がると思っています。
そういうやり取りは、インターネット上でも出来ますが、一般論としましては、実際にお会いするコミュニティの中での方が活発に議論されやすい性質があると思いますので、お勧めです。

ぜひまたWordCampやWordBenchでお会いしましょう!

以上で、WordPress Advent Calendar 2011の24日目の記事とさせていただきます。

WordPress Advent Calendar 2011の最後は、WordPressのコミュニティで知り合った素敵な女性と結婚して先月お子さんまで誕生されたオデさんです。
8bitodyssey.com | WordPressでつづる、おでのこの道わが旅。

ということで、オデさんのバトンをお渡しします。オデさん、バシッと最後を締めてください!(・・・と、ハードルを上げておきます(笑)。)

カテゴリー: WordPressのカスタマイズ, コミュニティ   パーマリンク

WordPressをCMS以上のツールとして使うための、外部のWebAPIと連携させてコンテンツをより彩る方法について。 への10件のコメント

  1. khoshino より:

    WordPress Advent Calendar 2011の24日目として、以下の記事を書きました! 「WordPressをCMS以上のツールとして使うための、外部のWebAPIと連携させてコンテンツをより彩る方法について。」 http://t.co/uXjCe3OQ

  2. marushu より:

    WordPress Advent Calendar 2011の24日目として、以下の記事を書きました! 「WordPressをCMS以上のツールとして使うための、外部のWebAPIと連携させてコンテンツをより彩る方法について。」 http://t.co/uXjCe3OQ

  3. shirokuro331 より:

    ほしのさんスゲー。

  4. kzakza より:

    これは奥が深い。もう少しレンサバでいじってみるかなぁという気に。

  5. ピンバック: WordPress Advent Calendar 2011 まとめ | わーどぷれすっ!

  6. k-suke より:

    WordPressをCMS以上のツールとして使うための、外部のWebAPIと連携させてコンテンツをより彩る方法について。 | WordPress(ワードプレス)コミュニティ – http://wp3.jp/2011

  7. algorism より:

    WordPressをCMS以上のツールとして使うための、外部のWebAPIと連携させてコンテンツをより彩る方法について。 | WordPress(ワードプレス)コミュニティ – http://wp3.jp/2011

  8. ALGORISM より:

    とりあえず、ブクマ

  9. ピンバック: WordPressにGoogle Chart APIを実装して、簡単に円グラフや棒グラフや折れ線グラフなどを書く方法 | WordPress(ワードプレス)コミュニティ

  10. girigiribauer より:

    へー導入理由を挙げるときに役立ちそうな記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA