WordPressでCMS構築することを想定すると、よく見かけるダッシュボード(WordPress Dashboard Editor)やログイン画面(BM Custom Login)のカスタマイズは、WordPressの使い勝手を良くしたり、サイトの「らしさ」を演出するのに良いと思っています。

さらに運用に突っ込んだときに(といってもあくまで「体裁」の域は抜けませんが)、スキマを埋めるための何とかしたい「13のポイント」があったので、スキマ的プラグインのNiche Patch(ニッチパッチ)で対応しました。

CMS運用を想定した前提

あくまでWordPressはブログ用途のCMSですが、巷にあふれているとおり、コーポレートサイトのCMSとしての可能性が非常に高いと思っています。
コーポレートサイト向けのCMSとして、必ずといっていいほど「記事承認ワークフロー」があがりますが、こちらについては、大筋目処がたっていて、鋭意開発中なので、そのうちどこかで公開されると思います。(このサイトで公開するかは未定)

それ以外にも挙げればいろいろありますが、2.7ですでに網羅されている機能や配布されているプラグインの組み合わせ等でかなりの部分は実現可能です。

さて、実際にWordPressでコンテンツ更新していく担当者にとって、機能が豊富であるとか、そのCMSのベースが何であるかといった情報は(私の偏見かもしれませんが)不要な情報だと考えています。
記事の内容や許された表現力に注力できる管理画面という配慮が必要かなぁと。シンプルイズベストです。

蛇足ですが、他のオープンソースCMSによるサイト構築にわずかながら携わった経験上、ベースとなるCMSのバージョンアップにかかるコスト、そこから生じる担当者のストレス過多・モチベーション低下や、顧客自身がCMS=魔法の杖のように期待していたものへの落胆があるんじゃないかなぁと思っています。
そこで、多少のパワーワークには目をつぶってでも
「CMS(つまりこの場合はWordPress)本体には一切カスタマイズを入れず、プラグインだけで種々雑多な機能を網羅したい」
というのが、そもそもNiche Patchを作り始めた大きなキッカケです。
WordPress本体へのカスタマイズを排除することで、バージョンアップはプラグインの検証に絞れば良いので、極めてシンプルになります。
CMS運用する顧客側はCMSバージョンアップの不安からも解放されます。(つまりダッシュボード直後の画面で「WordPress X.Xが利用可能です」みたいな表示は本当の意味での運用側が把握していれば良い)
少し大げさな表現かもしれませんが、そんな思いがあります。

13のポイントとは?

解説は別の機会にします。(それとなく欲していた機能のある方なら、箇条書きでも伝わると期待して・・・)

  1. メールヘッダ(From)を任意に書き換え可能
  2. プロフィール編集をパスワード変更のみに限定
  3. ダッシュボード左上のWordPressロゴを隠す
  4. ダッシュボードのフッターを隠す
  5. ダッシュボードの「ヘルプ」タブから「ドキュメント」リンクを削除
  6. ダッシュボードトップに「現在の状況」ウィジェットのみを表示
  7. 同ウィジェット下部で表示される「テーマで使用中のウィジェット」「WordPress」バージョンの表示を削除
  8. 表示オプションタブを削除
  9. 投稿/ページ/メディアの一覧で「コメント」列を削除
  10. ダッシュボードメニューの「コメント」も削除
  11. ダッシュボードメニューの「ツール」も削除
  12. ダッシュボードメニューの順番入れ替え(投稿→ページ→メディアの順)
  13. トラックバック送信、ピンバック送信の無効化
    ※ディスカッション設定等で回避可能なので不要かも知れません(今後廃止する可能性もあります)

そのほか、前回バージョン(Ver.0.51)までのバグ修正と、将来的なリファクタリングやサポートバージョンなどを考え始めました。

使い方

  1. niche-patch.0.58.zipをダウンロード
    (最新版はhttp://typista.it-creates.com/wp-content/uploads/niche-patch.zip)
  2. プラグインディレクトリに解凍
  3. ダッシュボードからアクティベート
  4. ONにしたい機能は「ダッシュボード」→「設定」→「Niche Patch Plugin」から。

その他、バージョン非表示機能、投稿&ページの作成画面で、一番下に「スラッグ」を表示する機能、投稿タイムスタンプのチェック機能、カテゴリー未選択 or 未分類のチェック機能などを追加することができます。

制限事項

  1. 動作検証はWordPress2.7でのみです。(今後明示的に2.7以降のサポートに切り替えていく予定です。)
  2. まだ実装は不十分ですが、Niche PatchはJavaScriptがONの状態でのみ正しく動作します。OFFの場合はサイトトップにリダイレクト処理しています。(今後はリダイレクト先を指定可能なように対応予定)
  3. バージョン(v.0.58)のメインとなるCMS運用のためのシンプル化機能は、オプションがONであると同時に、便宜上「ユーザ作成権限」が無い(つまり管理者でない)場合に動作します。
    ※細かい機能ごとのオプション設定は要望があれば検討します。
  4. wp_list_pages()で実際に表示されるページ一覧は、menu_order(=ページ順序)の次にpost_title(=ページタイトル)の文字コード順のようですので、同じmenu_orderの場合、並び順のパっと見では順番操作できていないように勘違いしやすいので注意してください。(順番操作ボタンを+/-ではなく↑/↓のように1件ずつ確実に入れ替えていく処理も考えましたが、post_statusとの関連でダッシュボードのページ管理一覧を表示しているモードによって隠れているページとの順序性をどうするかという点で仕様を詰め切れそうにないので見送りました。)
  5. 投稿タイムスタンプのチェックは、ページの場合に動作しません。(今後調査します)
  6. 「保存」「公開」ボタンのonclickイベントを利用していますが、他プラグインとの競合は未検証です。(こちらも追って、調査していきます)
  7. なお、本来はonclickイベントへのハンドラ登録ではなく、リスナー登録のほうが美しいようですが、チェックNGの場合にPOST処理を中断する手段の実装にひと手間、ふた手間かかりそうなので、現状はonclickハンドラがすでに登録済みの場合のみ、当ニッチパッチハンドラ実行後(さらにいうと結果がtrueの場合)にコールするようにしています。

改修履歴

[v.0.58]2009.01.27

  1. CMS運用のための13のシンプル機能リリース
  2. ページの場合に「カテゴリチェック無し」 or 「未選択のみ」が不正に動作していた不具合の修正
    Page Category Plus(v.2.2で検証)を利用している場合に、当該オプションがONであれば正しく動作します。

[v.0.51]2009.01.15

  1. WordPress2.7不具合対応(投稿タイムスタンプチェックとカテゴリチェック)

[v.0.50]2009.01.10

  1. ページの表示順操作の対応
  2. テーマディレクトリを隠蔽するためにindex.html生成機能追加

今後の対応

プラグインの配布方法、とくにバージョンアップ時の通知方法を調べる。
その他、思いつきでニッチにふさわしいパッチがあれば、プラグイン実装していく。
日本語決め打ちではなく、多国語対応方法も気長に調べていきたい。
SPaiS WordPress プラグインの作り方(3) ステップ1:翻訳の仕組み