Sidebar
ein-/ausblenden

Update Prüfung für Themes entfernen

Plugin für WordPress SEO

Anzeige

WP Adventskalender 16
Ich hatte das Thema hier schon mehrfach (und in Türchen Nr. 12) - der Update-Check von WordPress ist nicht in jedem Fall sinnvoll und kann Last kosten, die man anders gebrauchen kann. Ich klemme je nach Anforderung den Cron ab und via Hook sorge ich dafür, dass das Update auf diverse Themen nicht mehr läuft.

Mark Jaquith stellt zwei sehr schöne Lösungen vor, wie man in Plugins und Themes als Autor den Update-check abklemmt. Viele Blogs nutzen Themes, welche selbst geschrieben sind, oder welche kein Update erhalten können. Insofern ist vor allem die Lösung für die Themes sehr nützlich.

Sie ist schnell in die functions.php des jeweiligen Themes integriert und so muss man sich nicht mehr in den Einstellungen des Blog darum kümmern. Gerade im Hinblick auf Themes für Kunden, welche sicher kein automatisches Update bekommen, ist diese kleine Funktion ein Mehrwert und gehört daher in die Arbeit aufgenommen.


function cws_hidden_theme_12345( $r, $url ) {
	if ( false !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
		return $r; // Not a theme update request. Bail immediately.
	
	$themes = unserialize( $r['body']['themes'] );
	unset( $themes[ get_option( 'template' ) ] );
	unset( $themes[ get_option( 'stylesheet' ) ] );
	$r['body']['themes'] = serialize( $themes );
	return $r;
}

add_filter( 'http_request_args', 'cws_hidden_theme_12345', 5, 2 );

Mark stellt in seinem Beitrag ebenso eine Lösung für Plugins vor, die ich ebenso sinnvoll finde; gerade bei Plugins für explizite Kundenwünsche finde ich das wichtig und so kommt man auch nicht in Kollision, wenn es ein Plugin im SVN gibt/entsteht, was den gleichen Namen trägt.

7 Kommentare zu „Update Prüfung für Themes entfernen“

  1. 1
    Kommentar von Klaus

    Der Name des Themes muss in dem Code aber eingefügt werden, oder?
    Also die beiden cws_hidden_theme_12345 umbenennen?

  2. 2
    Kommentar von Frank Bültge

    @Klaus: nein, es sollte lediglich ein Name sein, der einen gesicherten Namensraum im Theme hat, so dass es keine Kollision mit anderen Funktionen gibt.

  3. 3
    Kommentar von Crazy Girl

    Ich habe in meiner functions.php den Theme Update wie aus einem älteren Beitrag von Dir ausgeschaltet:
    remove_action( 'load-themes.php', 'wp_update_themes' ); //Remove Theme Update
    remove_action( 'load-update.php', 'wp_update_themes' ); //Remove Theme Update
    remove_action( 'admin_init', '_maybe_update_themes' ); //Remove Theme Update
    remove_action( 'wp_update_themes', 'wp_update_themes' ); //Remove Theme Update
    add_filter( 'pre_transient_update_themes', create_function( '$a', "return null;" ) ); //Remove Theme Update

    Wenn ich diese Funktion hier zusätzlich noch in meine functions.php eingebe, dann dürfte das doch "doppelt gemoppelt" sein, oder?

  4. 4
    Kommentar von Frank Bültge

    Die Lösung hier im Beitrag sorgt dafür, dass nur dieses eine Theme nicht geprüft wird; während mein Hinweis damals explizit alle Updates ausschaltet. Hier muss man schauen, wie man es haben will.

  5. 5
    Kommentar von Crazy Girl

    Da ich meine Themes eigentlich immer alle selbst schreibe, ist es für mich *genial* die Updateprüfung komplett auszuschalten. Danke :-)

  6. 6
    Kommentar von Mano

    Kommt mir auch gerade recht. Ich schreibe meine Themes nicht selbst (Weiss nicht mal wie das geht) aber Ich mache Sie doch selbst mit Artisteer. So weit Ich weiss gibt es dafür auch keine Updates.
    Die ständigen Updates finde Ich sowieso einen Alptraum.

  7. 7
    Kommentar von Jens

    Cool..
    dass ist genau dass was ich gesucht habe..=)
    nach mehreren seiten die ich jetzt durchsucht habe..
    hab ich hier genaue beschreibungen bekommen..
    dank und gruß Jens

Kommentare sind geschlossen.