Heute musste ich in einem Blog eines Kunden ein Plugin anpassen, damit es optisch zur Webseite passt und auch eine deutsche Ausgabe hat. Nun war das Problem, dass der Kunde immer fleißig seine Updates im Wordpress-Admin macht.
An sich eine lobenswerte Sache, aber wenn er das Update zu diesem Plugin einspielt, sind meine ganzen Anpassungen in der Programmierung überschrieben und weg. Das soll natürlich nicht passieren. Ich bin aber realistisch genug, um zu wissen, das hier ein Hinweis darauf niemanden davon abhält, zukünftige Updates zu erledigen. Aus dem Grund muss hier eine Lösung her, die das Update im WP-Admin am besten gar nicht erst anzeigt.
Kapitel in diesem Beitrag:
Lösung 1: alle Wordpress-Updates mit Plugin unterbinden
Der erste Weg, den man hier wählen kann, ist das Plugin „Disable All WordPress Updates„, das man im Wordpress-Repository findet. Es ist sozusagen die „Kanone“, mit dem wir auf den „Spatzen“ schießen würden, denn eigentlich möchten wir ja nur die Updates von einem Plugin verhindern.
Das Plugin „Disable All WordPress Updates“ verhindert jedoch nur nicht alle Plugin-Updates, sondern auch die aller installierten Themes und die von Wordpress selbst. Das ist auf Dauer natürlich ein hohes Sicherheitsrisiko, das ich dem Kunden nicht antun wollte.
Lösung 2: nur Updates zu spezifischem Plugin deaktivieren
In meinem Fall sollte dem Kunden weiterhin erlaubt sein, alle Plugins durchzuführen, aber das eine Plugin, das ich angepasst habe, müsste aus den Updates ausgeklammert werden. Wenn es irgendwann ein größeres Update des Plugins gibt, würde ich dieses manuell einspielen und die Anpassungen nochmals vornehmen. Das wird irgendwann wichtig, damit das Plugin auch mit größeren Versionssprüngen von Wordpress zurechtkommt.
Keine Änderung in der functions.php
Da der Kunde hier und da auch am Theme werkelt und sich eventuell in Kürze ein anderes Theme aussucht, war mein Plan die Lösungen auszuklammern, die mit einem Script in der functions.php arbeiten. Bei einem Theme-Wechsel wird die functions.php nicht automatisch übernommen und es wäre absehbar, das hier etwas schief geht. Mein Plan war, ein paar Zeilen Code in das individualisierte Plugin einzutragen, damit es keine Updates mehr abfragt und anzeigt.
Fündig geworden bin ich letztlich in diesem Thread von Stackoverflow, aus dem ich mir die folgenden Zeilen Code geholt habe:
// Deactivate Update Feature of this Plugin add_filter('site_transient_update_plugins', 'remove_update_notification'); function remove_update_notification($value) { unset($value->response[ plugin_basename(__FILE__) ]); return $value; }
Diese Codezeilen kopiert man in die Hauptdatei des Plugins, welche meistens nach diesem Schema im Ordner „wp-content/plugins/“zu finden ist:
name-des-plugins/name-des-plugins.php
Für den Test des Codes habe ich es bei mir mal mit dem Plugin „Ad-Inserter“ ausprobiert, das gerade ein Update haben wollte. Im Screenshot seht ihr, wo ich den Code eingebaut habe.
Nach dem Einbau habe ich im Wordpress-Admin die Liste der Plugins aufgerufen und siehe da: Das Plugin meldet keine verfügbare Aktualisierung mehr (obwohl es eine gibt). Die Sache funktioniert also ganz zuverlässig – bei mir getestet bis Wordpress 5.4.1.
Mein Fazit
Das Schöne an der Lösung ist, dass man gezielt Aktualisierungen für bestimmte Plugins ausschließen kann und nicht die „Nuklear-Lösung“ wählen muss, bei der alle Updates unterbunden werden. Möchte man die Updates von mehreren Plugins ausblenden, kopiert man den gleichen Code in die Hauptdatei jedes dieser Plugins.
Was mir bei dem Code besonders gut gefällt, ist die Tatsache, dass man ihn direkt so kopieren und einfügen kann. Bei anderen Lösungen muss man noch den Dateipfad und den Namen der PHP-Datei in den Code eintragen, damit es funktioniert. Hier wurde das mit der Funktion „plugin_basename“ ausgelesen, was sehr komfortabel ist.
Meine Tipps & Tricks rund um Technik & Apple
Ähnliche Beiträge
Seit 2012 betreibe ich meinen Blog als Sir Apfelot und helfe meinen Lesern bei technischen Problemen. In meiner Freizeit flitze ich auf elektrischen Einrädern, fotografiere mit meinem iPhone, klettere in den hessischen Bergen oder wandere mit meiner Familie. Meine Artikel behandeln Apple-Produkte, Drohnen-News und Lösungen für aktuelle Bugs.