web-dev-qa-db-ja.com

プラグインが自動的にアクティブ化されないようにする

私が世話するサイトでは、ホスティング会社が自動的にプラグインを強制しますが、それは役に立たないのです。

プラグインを削除しても自動で再インストールされて再アクティブ化されるように見えるため、プラグインが完全にアクティブ化されないようにするために使用できるフック/アクションを探しています。私がどこを見るべきかについて誰かが何かヒントがありますか?

1
rich

独自のpluginを追加して、それらのプラグインを(サイレントで)非アクティブ化することができます。まず、メインのプラグインファイルを開いて、プラグインがフック(またはフィルター)している場所を確認します。次に、プラグインのフックを解除します。

_<?php
/** Plugin Name: Deactivate other plugin */
add_action( 'the_same_hook', 'removeOtherPlugin', PHP_INT_MAX -1 );
function removeOtherPlugin() {
    remove_filter( current_filter(), 'their_function_name' );
    remove_filter( current_filter(), __FUNCTION__ );
}
_

説明

  • 削除をよりポータブルにするヘルパーは current_filter() です。現在実行中のフィルターの名前を返します。
  • _PHP_INT_MAX_は、OSの機能に合わせて自動的に調整されるPHPの最大整数(1だけ減じたもの)です。これは、関数が後で登録されることを保証する最も保存方法です。後で登録する場合でも、zzzRemoveOtherPluginなどの文字で関数名を開始することができます。
1
kaiser