Wie lösche ich das Hello Dolly Plugin automatisch?

Ich plane, ein Plugin namens Goodbye Dolly zu erstellen. Einmal installiert, kümmert sich die Installation darum, das automatisch installierende Hello Dolly (WordPress Plugin), das mit WordPress ausgeliefert wird, zu entfernen.

Dies ist auf vielfachen Wunsch zurückzuführen. Einige Leute haben danach gefragt.

Ich mag die Idee. Es hat mich nie so interessiert, weil ich es manuell entfernt habe. Aber ich mag die Idee, den Ärger zu sparen und diese Entfernung für die Zukunft automatisiert zu machen.

Ich wollte nur die Datei löschen, wenn sie im Grunde existiert. Aber ich bin ein wenig unsicher über die Abstraktion von Dateisystemen. Und ich möchte dies bereits bei der Installation / Aktualisierung tun, also muss dies nicht immer überprüft werden.

Also welche Haken sind zu beachten? Irgendwelche Best-Practice-Ideen?

Aktualisieren:

  • Homepage: http://hakre.wordpress.com/plugins/goodbye-dolly/
  • Repository: http://wordpress.org/extend/plugins/goodbye-dolly/

Solutions Collecting From Web of "Wie lösche ich das Hello Dolly Plugin automatisch?"

Während ich die Idee zu schätzen weiß, ersetzt dies nicht nur ein Plugin durch ein anderes? Rarsts Link hat bereits die Antwort – es muss nur ein wenig überarbeitet werden, um das Plugin in regelmäßigen Abständen zu überprüfen:

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

Schlagen Sie das in Ihre functions.php-Datei (in einem untergeordneten Thema, wenn Sie nicht bereits ein benutzerdefiniertes Thema verwenden) und Sie sollten gut gehen.

Es gibt jetzt das Plugin Unerwünschte Plugins Remover . Es wird die Plugins Akismet und Hello Dolly bei jedem Upgrade entfernen. Sie können die Plugin-Liste so filtern, dass sie nur zu einem dieser Plugins passt oder mehr hinzufügt.

Aus dem Code:

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

Mike hatte in einer seiner Antworten davon gesprochen , Dolly zu töten , aber das wurde für das erste Installationsskript geschrieben.

Ich habe versucht, Code zu folgen, der den core aufrüstet, um einen passenden Haken zu finden, aber das ist ein Labyrinth mit einigen Upgrader-classn, die ich noch nicht kenne.