オレオレWordPressプラグインが公式ディレクトリ上のプラグインとうっかりかぶってアップデートされないようにする

SPONSORED LINK

たとえば特定のクライアント向けにWordPressのプラグインを開発したあとで、たまたま同じ名前のプラグインが公式ディレクトリに登録されると、そっちのほうがバージョン番号が新しいときにうっかりアップデートしてしまうことがありえます。

(実際に10分前にやらかした。笑)

同じ名前というのは、そのプラグインのディレクトリ名が同じという意味で、このユニークな名前のことをスラッグと呼びます。

わかりやすくするつもりで一般的な名前を使うとすでに公式ディレクトリに同じ名前のものがあったり、今はなくても忘れた頃に他の誰かが登録してうっかりアップデートしてしまって慌てるわけですね。

そんなトラブルを防ぐために、特定の顧客向けを想定したプラグインには以下のコードを入れておくと安心です。

add_filter( 'site_transient_update_plugins', function( $value ) {
  if ( ! empty( $value->response[ plugin_basename( __FILE__ ) ] ) ) {
    unset( $value->response[ plugin_basename( __FILE__ ) ] );
  }
  return $value;
} );

これはそのプラグインが有効化されているときにだけ期待通りに動きますので注意してください。無効化されているときはこのコード自体が動作しませんのでアップデートが発火してしまいます。

テーマでも同じようなことはできますが、テーマの場合は example.com みたいな感じでそのドメイン名にしておくとかぶることがなくなります。

追記

Facebookページのコメント欄でデジタルキューブ岡本さんとやり取りしたのですが、以下のようなアイディアもあります。

  • コードを少し変えないといけないけど、wp-content/mu-plugins でこれをやればプラグインを無効化された時の心配をしなくて大丈夫。(岡本)
  • プラグインのスラッグを _ で始めるのもあり。(宮内)
  • ありえないぐらい大きなバージョン番号(9999みたいな)をあらかじめ指定しておく。(岡本)

実は僕は全部の顧客向けに必ずインストールするプラグインというのがあってそのプラグイン名は _wp という名前だったりします。

SPONSORED LINK
Capital Pでは広告を募集しています。 WordPress専門メディアに出稿をご希望の方はお問い合わせください。

この記事を書いた人

宮内隆行

WP-CLIチームのコミッターの一人。VCCW開発者。WordPressコアコントリビューター。辺境の民。コーギーの写真には問答無用でいいねをします。WordPressスペシャリスト@タロスカイ株式会社。

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします

Club Capital P

Club Capital PはCapital Pのファンクラブです。有料会員制となっており、Gumroad経由でサブスクリプションをご購入いただき、ライセンスキーを登録いただくことで、会員特典を受け取ることができます。