Blog

ブログ

【OSC2010北海道】WordPressのセミナーのレポートと補足

6月25日の「オープンソース・カンファレンス2010北海道」で行われたセミナー
「世界標準ブログツールWordPressの最新版3.0と豊富なプラグイン」のレポートです。

講師:WordBench札幌の田中さんのセミナー資料はこちらです。
http://another.maple4ever.net/archives/1270/

拙記事ではセミナー内容の捕足、実務で扱うものとしての雑感などを交えます。
まだ3.0をちゃんといじっていないので、3.0についてはあくまで聞きかじりの段階であることはご了承ください。

WordPressはCMS

WordPress3.0は6/25時点で1,121,440ダウンロード

WordPressは時系列主体のサイトに強いように思われますが、「暮しの手帖」のような時系列に添わない、個性的な一覧ページを持ったサイト構築も充分可能です。

とは言え、様々な実務案件を経験してきた視点から言えば、静的ファイルとの共存が難しい、テーマファイルの見通しが良くないなどの欠点から多人数で連携して制作するサイトにはあまりおすすめできません。

尚、私のブログもWordPressです。一覧ページの体裁が普通のブログと違っていたり、a-blog cmsベースの本サイトとインクルードで連携していたりします。

と鬢€0のようなコンテンツマネーシ鬢€0メントシステムということを知る にはそのテ鬢€0ータ構造を知ることか鬢€0早道て鬢€0す。
WordPress 3.0 の新機能を交えまして、ます鬢€0は WordPress の テ鬢€0ータ構造を紹介していきます。

WordPressのデータ構造(記事情報)

ポストとページの二種類=post_type

  1. ポスト:時系列(日記/新着情報など)
  2. ページ:固定的(自己紹介)

ポストとページのメタ情報

  • タイトル
  • 投稿日・投稿者
  • 修正日
  • ハ鬨€0スワート鬢€0
  • トラックハ鬢€0ック先
  • 分類情報(カテコ鬢€0リ・タク鬢€0・タクソノミー)
  • リヒ鬢€0シ鬢€0ョン
  • 等々

WordPressの記事情報は時系列とカテゴリーによって分類することを前提にした「ポスト(記事)」と、1ページごとに独立した「ページ」に分類されます。

ただ、ページでも時系列の整理が可能だったり、後述の「カスタムタクソノミー」でうまくタグ分類すると、両者の区別はほとんどつかなくなってきます。
この辺りの特徴は、MovableTypeと非常に良く似ています。

カスタム投稿

WordPress3.0からの新機能
ポスト/ページに加えて新しいタイプを定義できる

タイトル不要/日付不要/トラックバックが必要/などなど

旧来のポスト/ページもカスタム投稿のひとつとして
デフォルト実装されている=再定義ができる

カスタム投稿機能は、マルチブログ以上の目玉機能なんじゃないかと思っています。
上の説明の通り「必要/必要ない項目」を自分で定義することが可能なので「タイトル・本文がなく、カスタムフィールドのみで構成された記事」などの大胆な構成も可能なようです。
MovableType4以降で登場している「表示オプション」に近い印象です。

管理画面上の入力項目の順番設定はできるのか、旧来のプラグインや表示パフォーマンスへの影響はないかなど気になるところもありますが、使いこなせば無償で使える軽量CMSとしての良さが増しそうです。

カテゴリーとタグ

記事に対する抽出条件のひとつ

1. カテゴリー→階層構造を持たせられる
2. タグ→フラットな分類

カスタム分類(タクソノミー)

任意のセット分類を追加できる
1サイトに複数のタグクラウドを生成できる

2.9から機能強化
ただし分類の新規作成はプラグインが必要(custom-post-type-ui

カスタムタクソノミーは、「複数の独立した階層カテゴリーを作成できる機能」と解釈した方がいいと思います。前バージョンから概念自体は存在していましたが、3.0以降では、管理画面からの設定が可能になりました。

こちらの記事で詳しく説明されている通り、導入の手順が面倒な割に必要性が薄い機能だったりします^^;

カスタムタクソノミー(Custom Taxonomy)の導入と使い方 [WordPress 3.0]

その他の情報

コメント
記事に対する外部からのコメント

ユーザー権限
複数のユーザーが投稿できるようにユーザー管理ができる
購読者/管理者/編集者/作成者/投稿者
管理画面のアクセス権限や投稿、修正制限
投稿から公開へのワークフローか鬢€0持てる

オプション
サイトの動作システム情報

リンク先
他サイトとのつながりを格納する情報/XFNを使える

ポストメタ(カスタムフィールド)
記事に対するここまて鬢€0て鬢€0出てきた以外のカスタムメタ情報を持たせる

ユーザー権限については捕足が必要です。
ほとんどの安価なCMSもそうですが、「上司」「部下」のアカウントがあって、部下が更新すると昇任者である上司に自動でメールが送られる…といった機能は、WordPress2.xの段階ではプラグインがなければできません。
MUと統合したWordPress3.0はもしかしたらできるかもしれないのですが、まだ未確認です。すいません。

2.xでの実装方法についてはこちらの記事を参照してください。

WordPress – 公開承認ワークフロー – 新規公開 | Technolog.jp

リンクの「XFN」というのは人間関係を表現したフォーマットなのですが、
なんで恋愛関係だけこんなに充実してますのん
と必要性に疑問を感じるわけですよ。ハイ。

その他の情報続き

マルチブログ
3.0から利用可能
これまて鬢€0に出てきた情報を複数もたすことて鬢€0、複数のサイトを持つ

データフロー
管理画面操作からのデータベースへの格納
コメント者からのコメントの投稿
トラックバック/ピンバック
XMLRPC/ATOM経由でのデータベースへの格納

出力系(テンプレートタグ)
WordPressテーマの実態
テンプレートタグはデータ構造をHTMLやRSSで出力する関数群
テ鬢€0ータの抽出を行うルーフ鬨€0系の関数を起点に、条件取得された 情報を取得
現在は主にフ鬢€0ラウサ鬢€0用に簡単に HTML 出力する機能か鬢€0提供されている

注目していたマルチブログですが、今回のセミナーではデータ構造の説明の一部にとどまりました。
MovableType4、SOY CMSのように管理画面からウィザードを介して作成できるのかと思っていましたが、現時点では外部からの.htaccessの編集などが必要なようです。
サブドメインも想定して設計されているのはありがたいところです。

WordPress 3.0で複数ブログを使う設定 « lainforest.org

出力系の説明にある通り、WordPressのタグはテンプレートエンジンではなく、PHPの関数です。
なのでテーマにはそのまんま関数を書きます。
PHPをある程度かじれば融通が利くのがありがたいところですが、プログラマさんがWordPressのテーマファイルを見たら、ちょっと面食らうかもしれません。

プラグイン

add_filter/add_actionで既存のタグ/関数に自作関数をフックできる
既存の関数も全てフックされているので不要なものを除外できる

functions.phpでテーマ専用の関数を定義できる

※簡単に実装できる反面、プログラム構造を追うのに慣れがいる

フィルターの例

記事の特定文字列を加工し、HTMLを付与
(記事中の「hiromasa」をタグで囲む)

ショートコード
([tegaki]0[/tegaki]で囲んだ箇所がカスタムフォントに変わる)

アクション(template_redirect)
通常のテーマに情報を渡さず、携帯用テーマの処理をさせる(例:Ktai Style)

ウィジェット
サイドバーのウィジェットを追加する

管理画面への機能追加
3.0からの新テーマはヘッダー画像を差し替えできる

時間指定実行(wp_cron)
コアには既に予約投稿の機能がある

必要なプラグインがあったなら「コア機能に対する変更」という視点で
調査を行うと比較的簡単に実現可能

既存のプラグイン修正時もコアのどの部分に介在しているのかを調査し、
そこからソースコードを追うとわかりやすい

WordPressは「フック」という概念でコア関数を管理しています。

既存のタグに新しい関数を定義する「add_filter」と

add_filter( 'the_content', 'hogehoge' );

WordPress内の特定の処理で関数を発動させる「add_action」があります。

add_action( 'wp_head', 'hogehoge' );

「コアのどの部分に介在しているのかを調査し、そこからソースコードを追う」というのが、プログラミングに慣れていないと難しいです。
phpファイルを内部検索できるソフトなどで調べる手もありますが、
WordPressのコアファイルを公開している、こちらのサイトが便利です。

PHP Cross Reference of WordPress

ページ右上にあるサーチボックスからタグ名、関数名を入力するとどのファイルの何行目にコードがあるのか、を調べることができます。

WordPressの魅力

ブログを起源とするプロダクトだがデータ構造がシンプル
特に3.0から基本構造や分類の解放を行っているためCMSとしても使いやすくなった

個性が強いブログサイトを構築する手段としても人気があるので
テーマやプラグインに美術的なものが多く配布されている

個性をた鬢€0すへ鬢€0く、システムもそれに答える形て鬢€0拡張されていく
テーマやフ鬨€0ラク鬢€0インからの介在の余地か鬢€0大きく
様々な要求に応えられるカスタマイス鬢€0か鬢€0可能

サイトへの導入実績が多くそのノウハウが得られやすい

WordCamp/WordBenchなどオフラインコミュニケーションも活発で楽しい

WordBenchについて

WordPress の地域コミニュティー
実はWordBench札幌としてのオフライン活動はこのOSC北海道か鬢€0初めて

参加お待ちしております
http://wordbench.org/

セミナーのレポートは以上です。

田中さんが述べられているように、WordPressはPHPの知識があれば柔軟なカスタマイズができることが魅力です。
このためかデザイナーが介入しやすく、芸術品のようなテーマ、とても無料とは思えないような高度なテーマが多数公開されています。
管理画面の完成度の高さも特筆すべきところです。

一方で「安くて簡単でなんでもできる」という情報が一人歩きしてしまい、WordPress の仕様では困難な案件、ライセンス料をかんがみても他のCMSの方が安心して運用できそうな案件もWordPress前提で来ることが増えているのが、私の悩みだったりします。

そういう意味で、新機能を派手にアピールするのでなく、WordPressを更に詳しく知るための解説に徹した田中さんのセッションは好感を持ちました。

MUと統合し、更に奥深くなったWordPressはこれからも注目すべきCMSだと思います。