web-dev-qa-db-fra.com

Comment supprimer le plugin Hello Dolly automatiquement?

Je prévois de créer un plugin appelé Goodbye Dolly. Une fois installé, il faudra veiller à ce que l’installation supprime l’installation automatique Hello Dolly (plugin Wordpress) shipping avec wordpress.

Ceci est dû à la demande populaire. Certaines personnes l'ont demandé.

J'aime l'idée. Je ne me suis jamais inquiété jusqu'à présent parce que je l'ai enlevé manuellement. Mais j'aime bien l'idée de sauver les ennuis et de faire en sorte que cette suppression soit automatisée pour l'avenir.

Je voulais juste supprimer le fichier quand il existe fondamentalement. Mais je ne suis pas sûr de l’abstraction du système de fichiers. Et je voudrais déjà le faire lors de l'installation/de la mise à jour, il n'a donc pas besoin de vérifier tout le temps.

Alors, quels crochets faut-il considérer? Des idées de meilleures pratiques?

Mise à jour:

5
hakre

Bien que j'apprécie l'idée, n'est-ce pas simplement remplacer un plugin par un autre? Le lien de Rarst a déjà la réponse - il faut juste retravailler un peu pour vérifier le plug-in périodiquement, comme ceci:

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');

Insérez cela dans votre fichier functions.php (dans un thème enfant si vous n'utilisez pas déjà un thème personnalisé) et vous devriez être prêt à partir.

6
user4205

Il y a le plugin Unwanted Plugins Remover maintenant. Il supprimera les plugins Akismet et Hello Dolly à chaque mise à jour. Vous pouvez filtrer la liste des plugins pour ne faire correspondre qu’un de ces plugins ou pour en ajouter d’autres.

À partir du code:

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

Mike avait couvert tué Dolly dans l'une de ses réponses , mais c'était écrit pour le script d'installation initiale.

J'ai essayé de suivre le code qui met à niveau le noyau pour trouver un crochet approprié, mais c'est tout un labyrinthe avec certaines classes de valorisation que je ne connais pas encore.

1
Rarst