Über den Author / Internet / WordPress / Plugin / Standard WordPress Themes bereinigen

Standard WordPress Themes bereinigen

~1 Min. Lesezeit

Bei jedem Core Update von WordPress werden automatisch die neuen Standard Themes nachinstalliert. So befinden sich rasch 4 Themes pro WordPress Installation ungenutzt auf dem Server. Hier zeige ich eine Lösung, mit welcher sich die überflüssigen Themes gleich selbst wieder entfernen.

Ungenutzte Dateien auf einem Server zu speichern benötigt nicht nur Speicherplatz, sondern kann je nach dem auch eine Sicherheitslücke sein. Daher empfiehlt es sich immer, alles ungenutzte zu löschen, schon von Punkt der Performance und Backup her gesehen.

Nach jedem Update daran zu denken ist aber mühsam und Zeitaufwändig.

Ein kleines WordPress Plugin schafft hier Abhilfe.

Der Filter upgrader_post_install sorgt dafür dass nach einem Update immer automatisch die Entfernung aufgerufen wird.

add_filter( 'upgrader_post_install', array(&$this, 'autoremove_std_themes'), 10, 3 );

Die Entfernung selbst erfolgt dann über die eigene Funktion:

function autoremove_std_themes ( $value, $hook_extra, $result ) {
	global $wp_filesystem;
	include_once ABSPATH . 'wp-admin/includes/file.php';
	WP_Filesystem(request_filesystem_credentials('notpossible.php'));

	$my_theme = wp_get_theme( 'twentyten' );
	if ( $my_theme->exists() AND wp_get_theme() != 'twentyten' )
		$wp_filesystem->delete("/wp-content/themes/".$my_theme->template, true);
	
	$my_theme = wp_get_theme( 'twentyeleven' );
	if ( $my_theme->exists() AND wp_get_theme() != 'twentyeleven' )
		$wp_filesystem->delete("/wp-content/themes/".$my_theme->template, true);

	$my_theme = wp_get_theme( 'twentytwelve' );
	if ( $my_theme->exists() AND wp_get_theme() != 'twentytwelve' )
		$wp_filesystem->delete("/wp-content/themes/".$my_theme->template, true);
	
	$my_theme = wp_get_theme( 'twentythirteen' );
	if ( $my_theme->exists() AND wp_get_theme() != 'twentythirteen' )
		$wp_filesystem->delete("/wp-content/themes/".$my_theme->template, true);
	
	return $result;
}

Dabei wird jedes Mal geprüft, ob eines der Standardthemes gegebenenfalls aktiviert und genutzt ist. Denn wenn dies der Fall ist, wird das Themes nicht gelöscht!

Das Plugin setzt jedenfalls voraus, dass auf das Filesystem direkt oder per FTP mit vorkonfiguriertem User/Pass zugegriffen werden kann.

Download des Plugins: twentycleaner.php oder als Zip: twentycleaner.zip

About Stefan

avatar
Ein männlicher IT Nerd, durchstöbert das Web nach speziellen Gadgets, unentbehrlicher Software und Alles was man im IT Sektor nicht verpassen darf.Immer hilfsbereit wenn Probleme zu lösen sind oder das Unmögliche umgesetzt werden sollte.

Weitere interessante Artikel

Tabelle vertical Scrollbar machen (Responsive Table)

~0 Min. LesezeitHTML Tabellen sind ein gern eingesetztes Mittel auf Webseiten. Leider eigenen sich solche …

YubiKey – OTP und U2F Authentifizierung

~1 Min. LesezeitFast bei allen Diensten benötigt man Heute ein Benutzername und Passwort. Dies zu …

6 Kommentare

  1. avatar

    Reicht die die Standard-Lösung via Konstante nicht – CORE_UPGRADE_SKIP_NEW_BUNDLED ?

    // Skip wp-content when upgrading to a new WordPress version.
    define( ‚CORE_UPGRADE_SKIP_NEW_BUNDLED‘, TRUE );

  2. avatar

    kannte ich nicht 😉 muss ich definitiv demfall überall einbauen ^^ Danke 🙂

  3. avatar

    Genial! Ich habe mal schnell per Shellskript alle wp-config.php angepasst…

    Hier das Script dazu:

    locate wp-config.php > list
    while read line; do
        sed -i -e "s/\$table\_prefix/define\(\'CORE_UPGRADE_SKIP_NEW_BUNDLED\', true\);\\r\\n\$table\_prefix/g" ${line}
    done < list
    
    rm list
  4. avatar

    Freut mich, dass es hilft.

  5. avatar

    Ich lege alle Formen einer möglichen Konfiguration in dem Repo ab, quasi als Starter:
    https://github.com/bueltge/WordPress-Starter

  6. avatar

    Danke für den Tipp! Ich war schon lange auf der Suche nach so einem Plugin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg