先月、年末に開催されたWordBench Tokyoの12月の会で、ライトニングトークに登壇しました。ネタはプラグインの紹介で、「2016年にお世話になったプラグインと年末年始に試したいプラグイン」です。

「地味だけど改めてお世話になったプラグイン」は以前から知っている、または使ってるけど、仕事の中で今年改めてお世話になったプグインです。その中から、日本のコミュニティではあまり聞かない地味〜なプラグインを紹介しました。「2017年に向けて試したいプグイン」は、まだローカルで試した程度ですが、比較的信頼のおける情報源からだったので紹介しました。

2016年、地味だけど改めてお世話になったプラグイン(と、その作者たち)

Public Post Preview

Public Post Preview
Public Post Preview

Public Post Previewは、サイトに未登録のユーザーでも投稿のプレビュー確認を可能にしてくれるプラグインです。投稿毎に一時利用のURLを作成することで実現しています。いわゆる「このURLを知ってる人のみアクセスできるリンク共有」です。

プラグインを有効化すると、投稿編集画面の「公開」ボックスに「外部許可を確認する」という設定が追加されます。これにチェックを入れるとURLが生成されて、表示されます。チェックを外すとURLが破棄されて外部許可が閉ざされます。なお、post_type=post以外でも、publicに設定されているpost_typeであれば機能を適用できます。

公開ボックスに「外部確認を許可する」オプションが。
公開ボックスに「外部確認を許可する」オプションが。

公開前の最終確認を第三者に取らなきゃいけない時などに便利です。例えば、公開前の最終確認で上長にリンクを送る、とか…。確認をするためだけのユーザーを追加するという無用なセキュリティリスクを避けれますし、確認する側もログインの手間が減ります。社外の人の確認が必要な時にも便利ですね。

ドミニク・シリング

コア開発者ドミニク・シリング
コア開発者ドミニク・シリング

このプラグインの作者はドミニク・シリング(Dominik Schilling)という方で、Ocean90というハンドルネームの方です。彼はWordPressプロジェクトの貢献開発者の一人で、4.6のリリースリードも努めています。

WP Migrate DB

WP Migrate DB
WP Migrate DB

WP Migrate DBはDBをエクスポートしてくれるプラグインですが、よくある「定期的なバックアップ」ではなく、「別の場所へ引っ越すためにDBをエクスポートする」という方向性のプラグインです。

特徴的な機能として、エクスポート時にURL、フルパス、その他指定したい文字列の置換を行ってくれます。シリアライズされたデータにも、もちろん対応済みです。更に、置換の設定をプロファイルとして保存しておくことができるので、引っ越し先が複数ある場合に便利です。例えば:テスト環境、本番環境、同僚Aさんの環境、外部Bさんの環境、の計4つ、とか。

WP Migrate DBの設定
WP Migrate DBの設定

何別のプラグインやWordmove、何かのスクリプト等が使えると便利なのですが、諸事情によりエクスポートしたDBでなければダメって時に便利です。まぁ、いろいろとそういう状況ありますよね…。

ちなみにこのプラグインは有料のPRO版があります。僕の中ではここ数年ずっと「使ってみたい有料プラグイン」のトップなのですが、今の仕事で管理しているWordPressのインストール数に対してなかなか納得が見いだせない価格なので、なかなか機会が無く。

ブラッド・タナー

このプラグインを作っているのブラッド・タナー(Brad Touesnard)、プラグインデベロッパーです。Delicious Brainsという会社を作って有料プラグインを売ってます。有名なのはWP Migrate DB PROですが、最近ではメディアとアセットをAmazon S3とCloudFrontに移動すふプラグイン等も出してます。会社では毎月1回「WordPressコア・コントリビューション・デー」を設けているらしい

Delicous Brainsはここ2年ほどブログに力を入れており、中級〜上級者向けの技術ネタが満載です。また、後述するピピン・ウィリアムソンと共同でApply Filtersっていう開発系(たまに、有料WordPressプラグインなどでどうやって食っていくか〜とかも)のポッドキャストをやってます。どちらも英語ですがオススメです。

Transients Manager

Transients manager
Transients manager

Transients Managerは、transientsを管理、編集する、開発者向けのプラグインです。今年は仕事で新しく構築したニュースサイトでtransientsキャッシュを設定してたので、その際デバッグに役立ちました。また、公開後も強制的にTransietsを削除したい時に役立ってます。

このプラグインを有効化すると管理画面から現在保存されているtransientsキャッシュを一覧できます。そして特定のtransientsキャッシュの削除、編集が行えます。編集できるのはName、Expires in、valueです。

保存されているtransietsキャッシュの一覧
保存されているtransietsキャッシュの一覧
各transientsキャッシュの編集が可能
各transientsキャッシュの編集が可能

ピピン・ウィリアムソン

作者はピピン・ウィリアムソン(Pippin Williamson)、プラグインデベロッパーです。WordPress.orgの公式プラグインレポジトリのプラグインレビュアーとしても活躍されています。先ほどのブラッドと同じく、会社(Pippin’s Plugins)を作って有料ブラグインを開発・サポートなどを生業にしている人です。

一番有名なのはEasy Digital Downloadsという、デジタルデータを売ることに特価したE-コマースプラグインです。プラグイン自体は無料で、アドオンが有料です。WooCommerceと同様のビジネスモデルですね。他にもたくさん無料・有料プラグインを出している他、有料の記事コンテンツも販売しています。開発系の話題が多く、オススメです。ここ数年は更新されていないのですが、彼がプラグインをレビューした際に出会ったダメダメなコードを綴っているCrappy Code(=ひどいコード)というブログを個人的にはよく読んでいました。

“Disable Plugins when doing local dev”

Disable Plugins when doing local devのコードはgistに
Disable Plugins when doing local devのコードはgistに

Disable Plugins when doing local dev”はローカル開発環境(や、ステージングサーバー)と本番サーバーのそれぞれで、強制的に有効化、無効化するプラグインを指定できるプラグインです。例えば、開発時に使いたいDebug Barとその関連プラグインは開発環境では有効化し、本番環境では無効化する。逆に、スパム対策のAkismetは開発環境では無効化し、本番環境では有効化する…などです。

このプラグインの背景と使い方は作者のブログに書かれているのでそちらを参照してください。ポイントは:

  • mu-pluginとして使う
  • LOCAL_DEV(等)を定義する必要がある

あたりです。

なお、gistのコメント欄を読むと分かりますが、フォークしてマルチサイト対応版を書いた人や、更にそれをインクルードしてプラグイン化した人がいますのでそちらも参考に。

このプラグインの難点というか、割り切ってるところですが、強制的に有効化・無効化するプラグインの設定はプラグインファイル内にハードコードされるため、設定されたプラグインは管理画面のプラグイン画面から手動で有効化・無効化ができなくなる点です。例えば、本番環境で強制敵に無効化するよう設定したプラグインを緊急時などに有効化する必要性が生じた場合、まずはこのプラグインのコードを編集しなければなりません。ちょっと面倒くさい…ことになります。

なおプラグイン名ですが、たぶん、とりあえずとってつけたって感じだと思います(笑)。

マーク・ジャクイース

プロジェクトリーダー
プロジェクトリーダー

作者はマーク・ジャクイース(Mark Jaquith)。WordPressのリード開発者であり、現在6名いるプロジェクトリードの1人です。つまりコア開発者の中で最も強い権限を持っている人の1人であり、コアのコードを最もよく熟知している人(…はず)の一人です。彼のブログ、最近は更新頻度が低いのですが、昔に投稿された記事を今でも検索して見返すことがあります。

そういう人たちに学んだ、2017年に向けて試したいイイ感じのプラグイン

Tailor Page Builder & Pootle Pagebuilder

Tailor Page Builder & Pootle Pagebuilder
Tailor Page Builder & Pootle Pagebuilder

Tailor Page BuilderPootle Pagebuilderは両方ともページビルダー系のプラグインです。ページビルダー系のプラグインについてはよつばデザイン後藤さんのブログ記事等を参考に。

ピピン・ウィリアムソンのブログ記事で知った

この2つのプラグインを知ったのはピピン・ウィリアムソンがブログに書いた記事です。海外のコミュニティでは今年かなり話題になってました。13のページビルダー系プラグインを検証し、「これなら許せる」という3つのプラグインが最後に書かれています。

この記事の反響が大きかった理由の1つが、開発者(特にプラグイン開発者)目線でレビューされている点です。彼が特に重視したのは下記の3点。どれもこれも「そうそう!そのへんをちゃんとしてくれてないと困るんだよねぇ」という点ばかりです。

  • プラグインを使用することに「ロックアウト」されないかどうか
  • the_contentフィルターの使用は適切か
  • UIがWordPressコアのUIに準拠しており、大きく逸れていないか(ぶっ飛んでないかw)

上に書いた通り、ピピンと彼の会社はプラグイン開発をしているのですが、「動かない」や「壊れた」といった類いの報告の多くは、調べてみるとページビルダー系プラグインが絡んでいるそうです。堪忍袋の緒が切れたピピンがTwitterで不満をぶちまけつつ、「ん、俺ページビルだー系プラグインは嫌いだから殆ど使ったことないな…」ということに気づき、「これじゃイカン!」と書いたのがこの記事です。

なお、3つのプラグインの残り1つはBeaver Builderです。こちらは日本でも紹介されていたりするので取り上げませんでした。また、Tailor Page BuilderはBeaver Builderと同じで、無料版と有料版(PRO版)があります。Pootle Pagebuilderは無料版のみです。

Asset Queue Manager & GitHub Updater

Asset Queue Manager & GitHub Updater
Asset Queue Manager & GitHub Updater

これはどちらも開発系のプラグインです。Asset Queue Managerはサイトへにロードされるためにenqueされているアセット(CSS、JS、画像、など)を管理できるようにするプラグインです。特定のファイルを読み込まないようにしたりすることができます。GitHub UpdatorはGitHubのレポジトリにアップされているテーマやプラグインを、WordPress.org公式テーマ・プラグインレポジトリにアップされているかのごとく、更新通知やアップデートを行うことができるようしてくれるプラグインです。開発中のテーマやプラグインをローカルではない環境に反映させたり、別の人が開発しているテーマ・プラグインをテストのためだけにインストールしたりしたい時に使えそうです。Githubのクローズドレポジトリに対応しているので仕事にも使えそうな他、BitbucketやGitLabにも対応しているようです。

WordPress Meetupでウルリッヒ・ポグソンから知った

秋に開催されたWordCamp Tokyo 2016で登壇したウルリッヒ・ポグソン(Ulrich Pogson)が2016年10月のWordPressMeetupにも登壇してくれました。その時に彼がオススメの開発系プラグインを幾つか教えてくれたのですが、その一つがAsset Queue Managerでした。GitHub Updaterは彼のテーマテスト環境に入っていたので見つけたプラグインです。

彼はWordPressを使ったサイトの制作やテーマの制作をしていますが、WordPress.orgの公式テーマリポジトリのキー・テーマ・レビュアーの一人です。テーマの作る側とチェックする側の両方にいる人なので、色々と参考になる話を聞けました。

なお、GitHub Updaterは理由あって公式プラグインリポジトリでは公開できないことになっているようです。このissueのスレッドあたりに書かれてます。

※GitHub Updaterの使用は、WordPress.orgの公式リポジトリではない、GitHub等のオープンリポジトリからアップデートが可能になると言う点において少なからずセキュリティリスクを伴うものです。知識とスキルが無ければ避けておくことをオススメします。

まとめ

  • コアの開発で長年活躍している人やリスペクトされている人が作るプラグインには、知名度こそあまり高くないが、良質のプラグインがある。多機能さは無いかもしれないが、バグ修正やコアアップデートへの対応など、安定性には比較的期待できる。
  • コアの開発で長年活躍している人やリスペクトされている人は、気の利いた便利なプラグインを知っている可能性がある。特にテーマ作成時やプラグイン開発時に便利なプラグイン。
  • これからは、そういう「海外の人の文脈」経由でのプラグインとの出会いも狙っていっては?

スライド

最近はSpeaker Deckにアップしています。