web-dev-qa-db-ja.com

Hello Dollyプラグインを自動的に削除する方法

Goodbye Dollyというプラグインを作成するつもりです。いったんインストールされると、自動インストール Hello Dolly(Wordpress Plugin) wordpressと一緒に出荷することを削除するようにインストールに気を配るでしょう。

これは人気の要求によるものです。何人かの人々はそれを求めています。

私はそのアイデアが好きです。私はそれを手動で削除したので私はこれまでのところ気にしませんでした。しかし、私は面倒を省き、将来的にこの削除を自動化するというアイデアが好きです。

基本的に存在しているときにファイルを削除したいだけでした。しかし、ファイルシステムの抽象化についてはよくわかりません。そして、私はすでにインストール/アップデートでこれをしたいと思うので、これは常にチェックされる必要はありません。

それで、どのフックが考慮されるべきですか?ベストプラクティスのアイデアはありますか?

更新:

5
hakre

私はその考えに感謝しますが、これは単にあるプラグインを別のプラグインに置き換えるのではないでしょうか。 Rarstのリンクはすでに答えを持っています - プラグインを定期的にチェックするためには少し修正する必要があります。

function goodbye_dolly() {
    if (file_exists(WP_PLUGIN_DIR.'/hello.php')) {
        require_once(ABSPATH.'wp-admin/includes/plugin.php');
        require_once(ABSPATH.'wp-admin/includes/file.php');
        delete_plugins(array('hello.php'));
    }
}

add_action('admin_init','goodbye_dolly');

それをあなたのfunctions.phpファイル(あなたがまだカスタムテーマを使っていないのであれば子テーマの中にある)にスラップしてください。

6
user4205

プラグインがあります - - Unwanted Plugins Remover now。それはすべてのアップグレードでプラグインAkismetとHello Dollyを削除します。これらのプラグインのうちの1つのみに一致するように、またはさらに追加するようにプラグインリストをフィルタすることができます。

コードから:

$this->unwanted_plugins = apply_filters( 
    'unwanted_plugins_list', array( 'akismet/akismet.php', 'hello.php' ) 
);
5
fuxia

マイクは 彼の答えの1つでDollyを殺した をカバーしていました - しかし、それは最初のインストールスクリプトのために書かれました。

私は適切なフックを見つけるためにコアをアップグレードするコードに従うことを試みました、しかしそれは私がまだ知り合っていないいくつかのアップグレードクラスのかなりの迷路です。

1
Rarst