Ja, willkommen zurück aus der Pause.
Wie direkt weiter gehtes mit Learnings aus
einer Million WordPress-Updatesvon Marc Nilius.
Viel Spaß.
Dankeschön.
Aus dem Bild raus.
Da raus, da rein.
Hallo zusammen.
Ich hoffe, ihr seid noch halbwegs wach undfit.
So am Nachmittag lässt die Konditionmeistens langsam nach.
Ich hoffe, ich erzähle euchjetzt ein bisschen was nicht allzu
kompliziertes, eher einbisschen was Lustiges vielleicht.
Ein paar lustige Geschichten, die angenehmanzuhören sind.
Dann ist das mit dem Koma vielleicht nichtganz so wild.
Ja, also ich erzähle was zu Learnings auseiner Million WordPress-Updates.
Wir machen erstmal eine schnelle Runde somit den üblichen Dingen.
Also das, was man so als Vorinformationirgendwie doch noch raushauen muss,
standardmäßig, auch wenn ihr daswahrscheinlich alle weitestgehend wisst.
Was für Updates gibt's?
Wir können Core updaten, wir könnenPlugins updaten, wir können Themes updaten.
Und ihr wisst vielleicht auch,wir können Sprachdateien updaten.
Das geht immer so gerne so ein bisschenunter, aber die gibt's auch.
Und wenn ihr euch eure Webseite anschaut,kommt ein bisschen was zusammen.
Also die übliche Webseite, 20 Plugins,30 Plugins.
Habt ihr 100 Plugins?
Ich weiß nicht.
Manche gibt's.
Nö, da kommen Updates zusammen.
Wenn wir uns angucken,wie viele Plugins gibt's so,
ne, WordPress-Repository,da ist der Screenshot.
59.000 kostenlose Plugins, da sind dieganzen Kauf-Plugins alle noch nicht dabei.
Gibt's Stoff, da kann man richtig vielmitmachen.
Und ihr wisst natürlich auch, warum ihrUpdates machen wollt, ne.
Das ist jetzt auch keine Neuerung.
Sicherheitsgründe, Sicherheitslückensollten geschlossen werden.
Ihr habt irgendwelche Bugfixes,irgendwas, was nicht funktioniert.
Ihr habt neue Features, die ihr gernehaben wollt.
Ihr habt irgendwelcheKompatibilitätsthemen, PHP-Versionen zum
Core, zu anderenPlugins, zu irgendwas, was
da irgendwie wiedernicht so richtig läuft.
Und, naja, mein Lieblingsthema,Anpassung an die Gesetzeslagen,
da, so DSGVO, Barrierefreiheit,all das, was da so rumwabert.
Andauernd müsst ihr also irgendwelcheUpdates machen.
Und wie ist das so im WordPress-Umfeld?
Ihr macht heute mal Updates auf eurerSeite, klickt die alle durch.
Und geht morgen auf eure Seite und gucktdie nochmal an.
Und da ist wieder so ein roter Kreis anirgendeiner Stelle definitiv.
Und es ist schon wieder irgendein Updateda.
Warum ist das so?
Ja, die Leute sind halt nicht koordiniert.
Das sind diverseste Anbieter,das sind die Plugin-Autoren,
die Teamhersteller, dieWordPress-Core-Leute.
Die reden ja nicht miteinander,also zumindest nicht darüber.
Und es gibt ein schönes Beispiel,ihr kennt den Microsoft-Patch-Day.
Microsoft hat irgendwann mal so einen Tageingeführt.
Das war jetzt der zweite Dienstag in einemMonat.
An dem kommen alle Patches von Microsoftraus.
Das heißt, die machen das nicht so hiermal ein und da mal ein und da mal noch.
Im Übrigen für die Suite da und für dieSoftware da.
Nein, das kommt alles klatsch an einem Tagaus.
Das ist wirklich irgendwie so einmaximales Security-Release.
Der kommt auch schon mal zu anderenZeiten.
Haben wir nicht.
Weil wir viel zu viele verschiedene Playerhaben, die nichts miteinander zu tun haben
und die nicht miteinander koordiniertwerden.
Aber selbst wenn sie sich koordinieren.
Also das Core.
WordPress.
Hauptversion.
Wenn ihr in den letztenJahren mal guckt, wann so
eine WordPress-Versionveröffentlicht worden ist.
Da gab es tolle Zeitpunkte.
In Amerika sehr beliebt.
Rund um Thanksgiving.
Wenn also die Major-Version vonWordPress rund um Thanksgiving
veröffentlicht wird, wo alleirgendwie im Urlaub sind.
Keiner zu Hause ist.
Alle bei den Eltern sind.
Und dann freuen die sich total, dassdann alle irgendwie aufs Update klicken.
Alles ist kaputt und Drama passiert.
Anderer Zeitpunkt war so Anfang Dezember.
10. Dezember rum.
So kurz vor den Weihnachtsferien.
Damit man dann noch richtig Arbeit mit denWordPress-Updates hat.
Das sind so.
Auch selbst da, ne.
Da, wo sie sich koordinieren könnten,ist das nicht immer so der Fall.
Das heißt, wir haben irgendwie über dasganze Jahr zu jedem beliebigen Zeitpunkt
immer irgendwann irgendwo irgendeinenUpdate.
Und das ist ganz schön viel.
Und die schlaue Frage ist.
Wie mache ich das am besten?
Und.
Was wird dabei alles schief?
Das erzähl ich.
Wir könnten jetzt ein bisschen Ordnung indieses Chaos bringen und da uns
irgendwelche tollen Schritte überlegen,damit das ab jetzt koordiniert läuft.
Also wir könnten zum Beispiel einmal imMonat Updates machen.
Alle.
Das ist gut.
Ist ein bisschen blöd, weil ja jeden Tagirgendwelche kommen.
Und einmal im Monat ist definitiv einzu langer
Zeitraum, um aus Sicherheitsgründen,da das Richtige zu tun.
Also ich sage immer mindestens einmal dieWoche.
Das heißt, das können wir schon mal nichtmachen.
Aber was können wir machen?
Ihr könnt Backups machen.
Also das ist auch noch mal soreingeschoben.
Wer kein Backup hat, hat kein Mitleid vonmir.
Da habe ich kein Problem mit.
Sollt ihr machen.
Deswegen sollt ihr immer vor einem Updateein Backup haben.
Dann ist alles gut.
Es gibt auch diverse Lösungen fürRollback.
Also ihr macht ein Update und es klapptirgendwas nicht.
Und ihr könnt es wieder zurückspulen aufdie Version davor.
Das gibt es sowohl für die Plugins alsauch für Core.
Die Plugin Namen stehen da.
WP-Rollback ist so für Plugins.
Und es gibt natürlich WP-Downgrade.
Das ist für die Core-Version.
Wenn ihr also auf die Core-Version davorzurück wollt, könnt ihr das damit machen.
Und mit Rollback-Core auch.
Das heißt, wir haben ein Backup.
Wir haben irgendwelche Schutzmechanismen.
Damit können wir schon mal arbeiten.
Und ihr habt ein Changelog.
Ihr habt ein Changelog,in dem drin steht, was
sich seit der letztenVersion geändert hat.
So, jetzt mal ehrliche Hände.
Wer liest das Changelog?
Ja, ihr zählt nicht.
Sind zu wenige.
Ich kann einfach nur sehrempfehlen, das werdet ihr ja
gleich feststellen, so einChangelog lesen hat echt Vorteile.
Denn in so einem Changelog stehen echtwichtige Dinge drin.
Und ihr werdet gleich bei so ein paarParts sehen, was da so schief gegangen ist.
Dass es nicht schief gegangen wäre,wenn man das Changelog gelesen hätte.
Oder richtig gelesen hätte.
Deswegen, Changelog lesen ist immer einegute Idee.
Manchmal ist es so,dass das Changelog sehr
uneindeutig darüberist, was wirklich passiert.
Da steht dann so nahe, der Versionssprungvon 4.2.3 auf 4.2.4, some fixes.
Und some fixes machen aber irgendwie alleskaputt.
Das ist ein bisschen blöd.
Da kann man da den Plugin-Autor einbisschen auf die Finger hauen,
dass das hätte ein bisschen besserbeschreiben soll.
Und ihr habt natürlich ein Testsystem.
Finger hoch, wer hat ein Testsystem undtestet alle seine Updates erst in einem
Testsystem, bevor er es im Live-Systemtestet.
Es werden noch ein paar weniger.
So ein Changelog lesen waren schon wenige.
Testsystem werden noch ein paar weniger.
Ich gebe zu, es gibt so ganz unbedeutendeSeiten.
Da kann man einfach das Risiko eingehenund einfach mal klicken.
Wenn ihr den Online-Shop habt,der euch einen vierstelligen oder
fünfstelligen Betrag pro Tag produziert,wollt ihr das vielleicht nicht werden.
Aber jetzt haben wir das irgendwie sogeklärt, dass wenn also die Sachen,
die wir haben könnten und mit denen wirvorbereitet sein können und dann,
ja dann, muss irgendwann irgendwer mal aufdieses Knöpfchen drücken mit dem Update.
Und ihr könnt die Augen zumachen oder ihrkönnt euch ungefähr so fühlen.
Das ist so ein bisschen die Achterbahn desUpdates machen.
Das ist übrigens ein wunderschönesKI-Bild.
Die Achterbahn des Updates machen.
Klappt das denn alles?
Was passiert denn da jetzt alles?
Und die erste spannende Frage,die allererste spannende Frage,
die ich habe ist, was ist denn dierichtige Update-Reihenfolge?
Also ihr habt Updates vonThemes, von Plugins, von
Sprachdateien und vom Coreda rumliegen in eurem System.
Welches Update macht ihr denn als erstes?
Vorschläge.
Traut euch.
Core.
Okay.
Ja, kann man tun.
Blöd nur, wenn es Plugins gibt,die in der Version, in der sie installiert
sind auf dem System, mit der neuen Core-Version nicht mehr kompatibel sind.
Das heißt, man hätte dasPlugin erst updaten müssen,
damit es dann mit der neuenCore-Version funktioniert.
Jetzt sagst du natürlich, okay,dann mach ich die Plugins als erstes.
Das ist in Ordnung.
Problem ist, dumm nur, wenn die Plugins,die du dann als erstes aktualisierst,
nicht mehr mit deiner alten Core-Versionkompatibel sind.
Und deswegen hättest duerst den Core aktualisieren
müssen, damit diePlugins noch funktionieren.
Und jetzt stehst du da und fragst dich,was mach ich denn jetzt?
Das sieht dann immer ungefähr so aus.
Mach ich denn jetzt erst Core?
Mach ich denn jetzt erst, also was dennjetzt?
Und das fiese ist, ich hab keine Ahnung.
Ja genau, das fiese ist, ich hab keineAhnung.
Also natürlich gibt's eineStandard -Empfehlung,
die höchstwahrscheinlichin irgendeiner Form greift.
Nämlich erst die Plugins und Themes unddann den Core.
Weil wenn der Plugin Auto auch nur einenPunkten von Anstand hat, dann hat er sein
Plugin so gebaut, dasses sowohl mit der alten
als auch mit der neuenCore-Version funktioniert.
Dann kannst du das Update machen,dann ist das schon mal sauber und wenn du
dann den Core hinten dran schiebst,dann wird's wohl irgendwie klappen.
Wir wissen, wir habeneben 59.000 Plugins
gesehen, die da imRepository kostenlos drin sind.
Da ist nicht jeder Autor mit Anstanddabei.
Das geht schief an einigen Stellen.
Kommen wir gleich zu.
Aber wenn ihr das gemacht habt,ist alles gut, dann kann man die PHP
-Version hinten dranschieben, unter Umständen,
wenn die auch malnoch ein Update braucht.
Meistens ja so einmal im Jahr.
Ende November, Anfang Dezember ist schonwieder so ein Zeitpunkt, da geht schon
wieder die nächste PHP-Version den Bachrunter und aus der Maintenance raus.
Spätestens dann muss man wieder eineVersion hochdrehen.
Das Ding ist,
Plugins haben ja schon mal verschiedeneKompatibilitätseinstellungen.
Und da steht dann drin, sielaufen nur mit PHP-Version so und
so oder nur ab Version so undso oder nur mit Core so und so.
Das heißt, wenn ihr gerade alle Updatesgemacht habt und ganz glücklich seid,
jetzt guckt ihr die Liste nochmal neu an,plötzlich stehen da neue Updates.
Weil das sind die, die vorher nichtangezeigt wurden, weil sie mit der alten
Version von Core oder PHP oder irgendwasanderem sowieso nicht kompatibel gewesen
wären und deswegen erst gar nichtangezeigt wurden.
Das heißt, wenn ihr das macht,müsst ihr sowieso schon mal mehrere
Iterationen machen, bis ihr wirklich alleserwischt habt, weil zwischendrin tauchen
plötzlich noch mal neue auf.
Aber deswegen, das ist der Ablauf.
Wenn ihr das in derReihenfolge macht, behaupte
ich, in den allermeistenFällen geht das gut.
In den allermeisten.
Wenn wir dabei sind, was in denallermeisten Fällen gut läuft,
können wir auch darüber reden,was läuft schief.
Und jetzt kommt eine wunderschöne Sammlungvon diversen Einzelbeispielen,
die man aber so gerneübertragen kann auf diverse andere
Themen, weil sowas odersowas ähnliches passiert andauert.
Keine Rückwärtskompatibilität.
Ihr habt ein Plugin,irgendein fettes Major-Update,
ihr macht das und plötzlichist eure Seite kaputt.
Ihr wisst, was Major in meiner Versionsind.
Die Versionssprünge habe ich zurSicherheit noch mal aufgeschrieben.
Aber die Events Calendar ist ein Plugin,was ihr vielleicht kennt.
Im Jahr 2022 gab es ein Update auf dieVersion 6.0.0.
Also das ist ein Update, das man sowiesoschon mal niemals macht.
Man wartet bis 6.0.1, 6.0.2 oderirgendwas.
Aber es gab dieses Update.
Und da steht da unten so unter Tweak,also unter der Bezeichnung, naja,
wir haben eine kleine Verbesserung,steht da, dass alle Legacy-Templates für
Events Calendar Anzeigenvon Terminen deprecated sind,
rausgeworfen werden undab jetzt nicht mehr existieren.
Das heißt, wenn ihr bis dahin dieseTemplates genutzt habt in eurem System,
war eure Seiteschlagartig kaputt, weil das
wurde einfach nichtmehr richtig angezeigt.
Es war einfach nur Schmodder, HTML,Chaos, pur.
Das Ding ist, die haben schon monatelangvorher in ihren Changelogs geschrieben,
dass das neue Template-Systemzur Verfügung steht
und man ja die neuenTemplates schon nutzen kann.
Hat nur keiner.
Oder die wenigsten.
Aber mit dem Update kamen quasi täglichMenschen, die bei uns anrufen und sagten,
ich glaube, ich habe da was kaputtgemacht.
Und dann ist es natürlich so, dasswirklich, also das sind Templates und wenn
das komplexe Templates waren, vielleichtsogar individuelle Templates, die da
gebaut worden sind, die man dann in derneuen Template-Engine nachbauen musste,
ist das etwas, was vielleicht nicht infünf Minuten geht.
Das heißt, es wäre schlau gewesen,an dieser Stelle das irgendwie zu planen.
Wie hätte man das planen können?
Changelog lesen.
Also hätte irgendeiner vorher mal in denletzten Monaten dieses Changelog gelesen
und sich gedacht, wie die machen ein neuesTemplate-System.
Wann schalten denn ihre alten Templatesab?
Könnten wir da vielleicht mal drübernachdenken?
Oder spätestens bei dem Changelog sagen,okay, den Klick machen wir jetzt noch nicht.
Da warten wir vielleicht noch, bis wirdas mit den Templates organisiert haben.
Hätte es besser laufen können.
So waren einige Webseiten kaputt.
Unabhängig davon, dassdieses Update ein Graus war.
Und die Migrationsowieso nicht gut funktionierte.
Aber das sind andere Themen.
Aber wenn wir schon bei Sachen sind,die kaputt gehen.
Hin und wieder gibt es Updates,die ganz bewusst Breaking Changes,
also wirklich Defekte haben, die quasieingeplant sind, zwangsläufig.
Letztes Beispiel, Februar 24, ACF,Advanced Custom Fields, ein Plugin,
millionenfach installiert, kennt ihrvielleicht.
Hier war es tatsächlich etwas,in Anführungszeichen, sinnvolles.
Weil es war eine Sicherheitslücke.
Sie haben eine Sicherheitslücke entdeckt.
Das wird man wahrscheinlich sehr schlechtlesen können.
Hier unten steht ganz klein The Field.
Das ist eine Funktion, um das im Templateden Feldwert auszugeben.
Und das ist nicht richtig Escape worden.
Und da haben sie was angepasst.
Was aber dazu geführt hat, dass sie davonausging, dass, wenn man das in seinen
eigenen Templates eingebunden hat,und da geht es ja immer um
Individualentwicklung, um eigeneTemplates, um eigene Erweiterungen,
die man da programmiert, dass dann unterUmständen das nicht mehr funktioniert,
weil plötzlich irgendwelches HTML nichtmehr interpretiert wird und deswegen nicht
korrekt ausgegeben wird, sondern plötzlichirgendwelche HTML-Zeichen da auftauchen.
Das haben sie kommuniziert.
Also das gab so ein paar Wochen zwischeneinem Update, wo diese Meldung aufgetaucht
ist mit dem Hinweis,Achtung, da kommt was, bis zu
dem Update, in dem dastatsächlich dann passiert ist.
In den Wochen mussten die Seiten dann aberidealerweise angepasst werden.
Und aus meiner Erfahrung, dieallerwenigsten Seiten von uns waren
betroffen, die wir da irgendwie betrachtethaben.
Bei den allermeistenhaben wir nur festgestellt,
nee, ist alles gut, kanngenauso bleiben, wie es war.
Aber man musste das tun.
Und wenn man jetzt diese Notification,die da im Dashboard die ganze Zeit
auftauchte, geflissentlich ignoriert hat,naja, dann bestand halt die Gefahr im
Februar, wenn das Update wirklich kam,dass es wirklich die Seite auch kaputt
gegangen ist und da irgendwas aufgetauchtist.
Also auch da, man muss nicht nur einenChangelog lesen, sondern hin und wieder
diese Notifications, wenn sie denn keineWerbung sind,
tatsächlich auch mal ernst nehmen.
Was aber auch geht, sind mehrere Plugins,die einfach zueinander nicht so wollen,
wie sie sollen.
Und am allerfiesesten ist das,wenn die zwei Plugins, die nicht so
sollen, nicht so wollen, wie sie sollen,vom selben Autor sind.
Das ist irgendwie unglücklich.
In diesem Fall ist das zum Beispiel dasWooCommerce Variation Swatches Plugin,
das gibt es in der kostenlosen Version, dasgibt es zusätzlich in einer Pro-Version.
Und diese Pro-Version ist quasi ein Add-on,das muss installiert, also die
kostenlose Version muss mit installiertsein zu der Pro-Version, müssen beide da
sein, damit die Pro-Funktionalitäten dasind.
Kostenlose Version ist ein Repository,kann man logischerweise ganz normal
updaten, indem man draufklickt,Auto-Update, alles gut.
Die Pro-Version hat keinenUpdate-Mechanismus.
Da muss man also per FTP lernen.
Das Lustige ist, eigentlich immer in denletzten Jahren, wenn wir irgendwelche
Updates gemacht haben und kostenloseVersion aktualisiert worden ist,
die Seite mit einem 500er Fehler kaputtgegangen ist.
Weil die kostenlose Versionimmer nur mit der genau
entsprechenden kostenpflichtigenVersion funktioniert hat.
Und es gab keine Rückwärtskompatibilitätda in irgendeiner Form eingebaut,
sondern sie funktionierten immer nur,wenn die kostenlose und die
kostenpflichtige in exakt derselbenVersion installiert waren.
Und in jeder anderen Kombination hat dasDing immer nur geknallt.
Das muss man wissen, wenn man da sogemütlich mal durch die Plugin-Updates geht.
Und bei der Pro-Versionwird ja kein Update angezeigt,
weil das ist ja eins, wasman manuell machen muss.
Und dann klickt man da gemütlich durch unddann ist der Shop kaputt.
Das ist ein bisschen schwierig.
Dumm ist halt, man könnte jetzt auf dieIdee kommen, jetzt machen wir erstmal die
Pro -Version, das Update per FTP,danach alles andere geht auch nicht,
weil dann ist ja auch erstmal ein500-Fall.
Das heißt, man weißeigentlich, sobald man das
Update machen will,das ist immer ein 500-Fall.
Immer.
Das hat sich einbisschen beruhigt, weil das
Plugin das mittlerweileeinen Ticken besser macht.
Es gibt mindestens eine Warnmeldung aus.
Es gibt eine Warnmeldung aus und ich machejetzt nichts mehr.
Also in den letzten Wochen gab es da eineVerbesserung, die übrigens genauso ist wie
bei einem Plugin, was ihr vielleicht nochetwas besser kennt, das ist das Plugin
Germanized, was also genau in derselbenMethodik funktioniert.
Wir haben ein Germanized und wir habenein Germanized Pro.
Da passiert exaktdasselbe, nur mit dem
Unterschied, dass sie esbesser programmiert haben.
Denn wenn die kostenlose Version mit derkostenpflichtigen Version so weit
auseinander ist, dass sie das irgendwiekomisch finden, dann merken sie das.
Die Seite geht nicht kaputt.
Das Ding ist, sie deaktivieren diePro-Version.
Sie schalten sie einfach ab und sagen daspasst nicht zusammen, wir haben die mal
sicherheitshalber abgeschaltet,damit nichts kaputt geht.
Sorry.
Dumm ist ja nur, wenn da irgendwelcheFunktionen drin sind, die man gerade
braucht, dann hat derShop die Funktion gerade
mal nicht mehr, wennman das nicht feststellt.
Deswegen auf den Lizenzstatus achten,passt das alles, weil Germanized Pro würde
ja ein Update anzeigen und das könnte manauch klicken, wenn denn die Lizenz stimmt.
Und wenn die nicht stimmt, zeigt die aucheinfach kein Update ab.
Das heißt, an der Stelle, vorher genaualles gucken, ob alles gut ist,
in der Hoffnung, dassman alle Updates sieht und
nicht plötzlich irgendwelchekomischen Sachen macht.
Übrigens, apropos Lizenz.
Zu unserem Thema.
Wenn man mal guckt, kostenpflichtigePlugins, die keine Update-Hinweise anzeigen.
Zum Beispiel, weil sie keine haben.
Grundsätzlich eben, weil sie per FTPaktualisiert werden müssen oder eben,
weil die Lizenz fehlt.
Oder weil irgendwasanderes irgendwie komisch ist,
weil da gibt es tausendverschiedene Varianten.
Es gibt ja Marktplätze, wo man die Dingerunter Umständen kauft.
Meine Empfehlung ist, bei den meistenMarktplätzen gibt es irgendwie ein
Zusatz-Plugin, mit dem mandie Updates machen kann,
selbst wenn die sonstnur per FTP funktionieren.
Sowas sollte man haben, damit man auchdarüber dann die Information bekommt,
dass es irgendein Update gibt.
Jetzt kommt eine Folie, da sind zweischöne Logos drauf.
Wir waren ja eben schon mal beiInkompatibilität.
Und wenn wir über Inkompatibilität reden,dann fallen mir sofort und spontan zwei
Plugins ein, bei denen das Thema echtsuper ist.
Das ist einmal WooCommerce und einmalElementor.
Und zwar nicht, weil die beiden Pluginsirgendwie total doof wären, sondern,
weil es meistens irgendwelcheZusatz-Plugins gibt,
die damit irgendwie inVerbindung arbeiten müssen.
WooCommerce, noch fünfWooCommerce Zusatz-Plugins,
bei Elementor noch diversesteZusatz -Addons dabei.
Und da ist der Ärger schonvorprogrammiert, weil da ist auch wieder
die Frage, naja, was aktualisiere ich dennals erstes?
Und klappt das alles so miteinander?
Und da würde ich immer sagen, diese ganzenZusatz-Plugins, die müssen immer als
erstes aktualisiert werden, weil solangees für die kein Update gibt, würde ich
nicht darauf wetten, dass diemit der neuesten WooCommerce
oder Elementor-Versiontatsächlich kompatibel sind.
Und dann würde ich mit dem Update nocheine Runde warten.
Also, erst, ob die Addons gucken,ob die Zusatz-Plugins, die da irgendwie
von abhängig sind, und wenn die ein Updaterausgebracht haben und offiziell
behaupten, mit der Version von WooCommerceoder Elementor kompatibel zu sein, dann.
Aber ich erzähle ja gerne Anekdoten.
Ich muss eine Anekdote von Elementorerzählen.
Das ist wirklich ein wirklich,eine schöne Story.
Wir haben diverse Websites gehabt.
Unterschiedlichster Natur,unterschiedlichsten Kunden,
unterschiedlichsterHoster, also wirklich keine
Gemeinheiten, außerdass es Elementor war.
Und die ging immer kaputt.
Mit dem Elementor Update.
Immer.
Und zwar ging immer die Navigation kaputt.
Nur die Navigation, nichts anderes.
Die Navigation war aber zerstört,CSS sah schrottig aus, ging nicht.
Und wenn wir unter ToolsCSS neu generieren von
Elementor geklickthaben, war alles wieder gut.
Immer.
Aber nicht jede.
Nicht jede Elementor Seite.
Nur ein paar.
Wir fanden irgendwann raus, das liegtdaran, dass Elementor versucht,
eine CSS-Datei zu laden per HTTP.
Und nicht HTTPS.
Und deswegen hat der Browser gesagt,nee, nee, nee, das geht hier nicht.
Du darfst hier keine HTTP-Datei mehrladen.
Und die Datei, die er da versucht hat zuladen, war eine CSS-Datei von Elementor.
Und zwar keine dynamisch generierte,sondern eine, die im Plugin mitgeliefert
wurde, für die Basis-Styles derNavigation.
Aber warum?
Was passiert da?
Ihr wisst aber, wenn die per HTTP geladenwird, wird sie nicht geladen.
Und dann war die Navigation halt kaputt.
Wenn wir neu den Cache clearen,dann ging's.
Und wir haben uns ungefähr so gefühlt.
Warum?
Was macht der?
Warum HTTP?
Warum immer nach dem Update?
Und warum nicht, wenn wir den Cacheclearen?
Was macht ihr da?
Und dann haben wir lange, lange,lange gesucht.
Also wirklich lange.
Und die Lösung oder das Einzige,was wir gefunden haben, ist, die Seiten,
auf denen das auftrat,die hatten keinen
festen Redirect von HTTPauf HTTPS eingestellt.
Also entweder über den Hoster oder in derhtaccess-Datei irgendwie definiert.
Und dann haben wir den eingerichtet.
Und dann ging's.
Es ist wohl so.
Weiter haben wir es dann nicht,weil wir wollten uns Zeit sparen.
Weiter haben wir es nicht untersucht.
Es ist wohl so, dass nachdem Update Elementor
selber seinen eigenenCache neu erzeugt.
Und das aber irgendwie anders macht,als wenn man draufklickt auf den Button
und dabei aus irgendeinem Grund auf dieIdee kommt, seine eigene CSS-Datei aus dem
eigenen Verzeichnis von Elementor,die da standardmäßig dabei ist,
per HTTP zu laden.
Wohlgemerkt hat keine der Seitenirgendwie, Home-URL, Site-URL oder an
irgendeiner Stelle HTTP Doppelpunktirgendwas stehen gehabt.
Das war alles sauber.
Keine Ahnung, warum Elementor auf dieseIdee kam.
Hat uns ein paar Wochen, einige Stundenund viel Kopfkratzen gekostet.
Macht man in der htaccess einen Redirectrein, nie wieder Probleme mit Elementor.
Ähm, ja.
War interessant.
Ich hab noch ein paar Sachen mehr,die schiefgehen können.
Ich erzähl noch was.
Habt ihr schon mal Seiten aktualisiert,die ganz, ganz alt waren?
Spannende Frage ist, wie gut klappt das?
Und es gibt so positiv und negativBeispiele.
Wenn ihr mal ein Yoast SEO hattet,das ist eigentlich vollkommen wurscht.
Das kann in Version 2.
irgendwas vorliegen und jetzt auf Version28 hoch und ihr klickt das eben.
Da geht seltenst was kaputt.
Gegenbeispiel?
Avada.
Nicht machen.
Bei Avada kann ich einen dringenden Ratgeben, nicht einfach von Version irgendwas
auf hoch aktualisieren, sondern schön perFTP Stück für Stück Major Version für
Major Version nach und nach, weil allesandere wird die Seite maximal zerstören.
Ein Hintergrund ist auch, dassAvada in den letzten Jahren
regelmäßig die Art und Weiseder Lizenzierung geändert hat.
Also welcher Key, welcher Token für wasund wie sie es identifizieren,
dass die Lizenzierung gültig ist undnicht.
Und wenn man nämlich da nicht aufpasst,ist man im maximalen Deadlock drin.
Dann klickt man einfachauf Update und dann sagt
das Ding, ja hab ichaktualisiert, ist super.
Du musst aber jetzt deine neuenLizenzdaten ausfüllen.
Man sagt, äh, neue Lizenzdaten, äh,neue Lizenz, keine Ahnung, hab ich nicht.
Hat der Kunde mir noch nicht gegeben.
Der Kunde weiß sie auch nicht.
Aber, solange ich die nicht eingebe,kann ich die zum Theme gehörenden Core
Plugins nicht aktualisieren, weil das kannich erst, wenn die Lizenz gültig ist.
Und solange ich die nicht aktualisiere,ist die Seite aber kaputt, weil die Core
Plugins ja noch alt sind und das Themeaber schon neu.
Und dann steht man da und ruft den Kundenan, Entschuldigung, wir brauchen mal ganz
dringend ihre Lizenzdaten, weil sonst gehthier nix mehr.
Und da sagt der Kunde, ja, aber warum?
Ich sag, ja, also da ist ganz langsam undstückweise eine gute Idee, weil dann hat
man da wenigstens dieChance, zum richtigen Zeitpunkt
einzugreifen und esist nicht komplett kaputt.
Aufpassen.
Lizenzstatus vorher prüfen ist immer einegute Idee.
Wobei, wie gesagt, bei Avada fällt einemdas vorher gar nicht auf, weil die Lizenz
war ja da mit der alten Identifizierungwar vollkommen in Ordnung.
Erst nach dem Update sagt er, ja, jetzt mussich sie aber bitte nochmal neu ertragen.
Schon wieder WooCommerce.
Passt.
Ich weiß nicht, ob ihr das Feature kennt,die High-Performance-Order-Tables,
die mit Version, was hab ich geschrieben,seit Version 8.2 in WooCommerce sind.
Kennt die, wisst ihr, was das ist?
Das ist wenig Genicke, also erzähl ichwas.
Wie das so in WordPress ist, wird ja allesirgendwie in Posts gespeichert und in.
Alles ist ein Post.
Also jede Bestellungist ein Post, jedes
Produkt ist ein Post,jedes alles ist ein Post.
Was die Post-Tabelle relativgroß macht, ist ein Ding,
was man ja an WordPressrelativ häufig kritisiert.
Und irgendwann sind die WooCommerce-Macherauf die Idee gekommen, dass sie das mal
ändern könnten und zumindestens alleBestellungen, also alle Order in eigene
Tabellen packen könnten, damit diePost-Tabelle dafür entlassen wird.
Was übrigens eine grandiose Idee ist.
Also wirklich, ernst gemeint.
Dieses Feature gibt es seitWooCommerce 8 .2 und wenn man jetzt
WooCommerce frisch neuinstalliert, dann sind die auch aktiv.
Das funktioniert.
In allen alten Versionen natürlich nicht,weil man hat ja nur ein Update gemacht.
Das heißt, was man natürlich auch relativhäufig hat, es gibt Features, die,
wenn man es neuund frisch installiert, da
sind, funktionieren undgenutzt werden können.
Wenn man aber immernur ein uraltes System
hat und Updates macht,nie aktiviert werden.
Man muss es per Hand tun.
Hintergrund ist natürlich, dabei findeteine Migration statt.
Muss man gucken, ob alle anderenWooCommerce Add-on, Zusatzmodul,
Plugins dazu kompatibel sind, ob sie dasmit unterstützen und so.
Deswegen ist es viel zu riskant, das einfachzu aktivieren in einem Bestandssystem.
Insofern, volles Verständnis dafür,dass das so ist.
Aber, wenn man nicht weiß, dass es diesesFeature gibt, übrigens Changelog lesen,
dann wird man dieses tolle Feature niemalsaktiviert kriegen und das ist natürlich
bei tausend anderen Plugins auch so.
So.
Jetzt habe ich noch ein absolutes No-Go.
Lustige Rate-Runde.
Hat jemand eine Idee, was das absoluteNo-Go ist?
Nicht?
Gucken wir mal, ob ihr euch jetzt daranerinnern könnt.
Niemals, aber auch niemals, ändern wirCode direkt in einem Plugin, welches nicht
ein Individual-Plugin ist, sondernirgendwas von irgendwem offizielles.
Nie, Nie, Nie, Niemals.
Weil in dem Augenblick, wo wir das tun,können wir dieses Plugin nicht mehr updaten.
Weil wenn wir es updaten, ist unser Codeweg.
Dann müssen wir wieder nacheinbauen.
Das wollen wir ja auch nicht.
Also niemals tun, weil esgibt entweder Ärger beim
updaten oder es gibtÄrger beim nicht updaten.
Also eins von beiden gibt auf jeden FallÄrger.
Machen wir nicht.
Wir sind ja aus öffentlichen Quellen, dasheißt es wird regelmäßig Updates geben.
Hoffentlich.
Und die wollen wir ja auch regelmäßigeinspielen, damit die Kompatibilität
erhalten bleibt zu anderen Plugins, zumCore, zu PHP, zur Gesetzeslage, zu irgendwas.
Aber wenn wir da was anpassen,haben wir die Chance nicht.
Und machen wir keine Updates, haben wirein Sicherheitsrisiko.
Und zwar sehr schnell ein sehr großes,abgesehen davon, dass möglicherweise
Sachen da nicht funktionieren,weil wenn wir alle anderen Plugins drum
herum aktualisieren, beißen die sichmöglicherweise auch wieder.
Und im Idealfall gute Plugins habenirgendwelche Hooks und Filter.
Gab es heute auch einen Vortrag zu.
Mit dem man die Änderungen, die man dagerne einbauen wollen würde, tatsächlich
einbauen kann, ohne das Plugin selber zuverändern, sondern damit, dass man es
irgendwie Child-Theme oder einemIndividual-Plugin parallel macht.
Das löst einem nicht das Problem,dass wenn sich das Plugin dramatisch
ändert, dass man seineeigenen Anpassungen, die
man nebenher gemachthat, auch mit anpassen muss.
Child-Themes müssen auch regelmäßigaktualisiert werden, weil wenn sich die
Original-Templates im Original-Them ändern,dann muss man häufig Anpassungen machen.
Übrigens bei WooCommerce auch.
Wenn WooCommerce die Standard-Templatesändert und die Standard-Templates sind im
Theme überschrieben unddann im Child-Theme nochmal
überschrieben, dann muss manda meistens auch irgendwas tun.
Aber das ist immer noch besser,weil man ist koordinierter und kann das
auch testen in einem Test-System, alswenn man wirklich den Code selber ändert.
Also böse, böse niemals machen.
Ja, ich bin seit knapp zehn Jahren in derWordPress-Community unterwegs und ja,
WordPress ist ja auch schon ein bisschenälter.
Und in so einem Leben passiert einiges undmanchmal nennen sich Plugins auch um.
Das ist mein Lieblingsbeispiel.
Als ich in der Communityangefangen habe, da
gab es ein Plugin, dashieß Better WP Security.
Dann wurde es ganz schnell umbenannt iniThemes Security.
Und vor nicht allzu so langer Zeit wurdees umbenannt in SolidWP Security.
Und das ist okay.
Das ist halt immer wieder ein neuesPlugin.
Aber man muss es wissen, dass es so ist.
Dass das irgendwie immer noch dasselbe istund heißt aber anders, sieht ein bisschen
anders aus, tut aber irgendwie noch dasGleiche.
Das heißt, manchmal hat man da so einUpdate.
Da steht dann also noch iThemes Security.
Boah, ist ein bisschenlänger, nachher Klick und
dann sucht man nachher,wo ist denn mein Plugin?
Ist ja gar nicht mehr da.
Aber plötzlich ein neues Plugin heißtSolidWP Security.
Sollte man wissen.
Kurze Lernfrage.
Woher weiß man, dass das so ist?
Changelog lesen.
Ja, ja, genau.
Da steht das idealerweise.
Beziehungsweise, wenn man auf Detailsanzeigen klickt des jeweiligen Plugins,
dann öffnet sich ja die Seite aus demRepository.
Und wenn da schon derneue Name steht, dann kann
man das vielleicht dairgendwie auch erkennen.
Aber es gibt auch nochso ein paar andere, die
sich auch schon malumbenannt haben oder Dinge tun.
Ihr kennt vielleicht das Plugin ReallySimple SSL.
Kleiner Tipp, nicht nutzen.
Braucht man nicht.
Und es hat da eigentlich eine Funktion,nämlich irgendwie SSL Features nachrüsten
und da irgendwie was machen, damit dieSeite gut mit HTTPS funktioniert.
Und als sie merken, dass alle Seitenirgendwie mittlerweile HTTPS haben und
eigentlich kein Mensch mehr dieses Pluginbraucht, sind sie auf die Idee gekommen,
jetzt machen wir mal einSicherheits-Plugin draus.
Das können die Leute ja immer nochgebrauchen.
Deswegen, wenn man jetzt heute ReallySimple SSL installiert ist, hat das mehr
Funktionen, die irgendwas mit Security zutun haben, als mit SSL.
Muss man auch wissen und dannmöglicherweise sich nach einem Update
entscheiden, dass man es vielleicht nichtmehr haben will.
Weil es mehr macht als das, was maneigentlich braucht und mehr macht als das,
was man eigentlich machen, erledigenwollte.
Und dann schmeißt man es weg.
Das gilt übrigens auch für das so schönePlugin namens WP User Avatar.
Welches eigentlich mal so aus DSGVO-Thematik dafür da war, dass die User
Avatare die da so immer angezeigt werden,auch so in Kommentaren und so,
nicht von Gravatar geladen werden,sondern pflegbar waren im Backend.
Relativ einfache Funktion, relativoffensichtlich.
Das Plugin heißt jetzt,Moment, ich muss es
ablesen, ProfilePressPaid Membership Plugin.
Und Paid Membership klingt zu wenig nachUser Avatar.
Also ja, natürlich hat so ein Login-Menschvielleicht auch irgendwie ein User Avatar,
der da irgendwie ein Membership hat.
Aber eigentlich hat das miteinander nichtszu tun.
Und genau so ist es.
Also das Plugin hat den Besitzergewechselt und nachdem es den Besitzer
gewechselt hat, hat der neueBesitzer da 90% irgendwie
neuen Code reingeknalltund neue Funktionalität.
Und jetzt ist es halt eigentlich was ganzanderes.
Macht vielleicht irgendwounten im Detail noch
das, was es vorhermal angeblich tun sollte.
Aber.
Also wer durch seine Plugin-Liste geht undplötzlich ein Paid Membership Plugin in
seiner Liste findet, obwohl er niemalsPaid Memberships angeboten hat,
kommt auf die Idee, dass er dieses Pluginvielleicht nicht braucht.
Diese Inhaberwechsel sind aber nicht immertransparent.
Also wenn ich eben gesagt habe,ihr müsst das Changelog lesen,
damit ihr sowas mitbekommt, es klapptnicht immer.
Also in manchen Changelogs steht daseinfach nicht drin.
Und dann seht ihr irgendwann unten,dass sich die Anzahl der Contributor zu
einem Plugin geändert hat und da stehtwer anders drin.
Das weiß man nicht immer.
Und es gibt halt Fälle, in denen das auchbewusst so ist, dass das nicht transparent
ist, weil diejenigen, die da was mit zutun haben, halbwegs böse Absichten haben.
Also wir haben schon genügend Pluginsgehabt, in denen irgendwelche Bitcoin
-Miner drin waren, irgendwelcher Scam,irgendwelche Werbung, irgendwas wurde
eingebaut, irgendwas wurde eingepflanzt,passiert immer.
Diesen Sommer, so ein bisschen ähnlich,gab es einen Security Breach.
Da sind mehrere Plugins übernommen worden,allerdings übernommen worden in dem Sinne,
dass jemand den wordpress.org-Login desPlugin-Autors erraten hat, inklusive
Passwort, aus irgendeinem Security Breachdas Passwort hatte und genutzt hat und so
sich der Plugins bemächtigen konnte unddarüber dann Schadcode verteilen konnte.
Das ist so etwas, da ist man schlechtdrauf vorbereitet, weil wenn da einfach
nur ein Update angezeigt wird,weiß gar nicht, ob da was Sinnvolles im
Changelog stand, keine Ahnung,wahrscheinlich nicht, dann kommt da
plötzlich irgendwas komisches rein unddann weiß man nicht, dass da was passiert.
Übrigens steht da gar nicht auf der Folie,aber weil ich da gerade dabei bin,
es hilft hin und wieder auchzu prüfen, ob die verwendeten
Plugins überhaupt nochim Repository drin sind.
Wenn das Plugin seit Ewigkeiten irgendwiekein Update angezeigt hat, könnte man ja
mal nachgucken, gibt es da überhauptUpdates für?
Gibt es das Plugin noch?
Ist das überhaupt irgendwie von Nutzen?
Brauchen wir da irgendwas?
Müssen wir es mal ersetzen?
Gibt es den Autor nicht mehr?
Was auch immer.
Also auch das kann man jederzeit tun,hat nichts mit dem Update selber zu tun,
sondern eher mit dem Problem, dass es keinUpdate mehr gibt.
Aber schadet an der Stelle auch nicht.
Weil die Zeit so langsam dahin rennt,gibt es jetzt schon die Zusammenfassung.
Das passt also halbwegs gut.
Und ich bin mir sicher, auchwenn ich jetzt viel erzählt habe,
eigentlich ist es gar nichtso kompliziert, wie es klingt.
Es gibt tausende vonverschiedenen Fällen von komischen
Dingen, die an komischenStellen irgendwie passieren können.
Aber in den allermeistenFällen gebe ich ganz offen und
ehrlich zu, allermeistenUpdates laufen einfach so durch.
Man muss gar nicht so viel Angst vor denUpdates haben.
Die meisten sind sehr unproblematisch.
Das dumme ist nur, die wenigen,wo es wirklich gnadenlos schief geht,
die kündigen sich selten vorher vernünftigan.
Es ist meistens so,dass die plötzlich da sind
und man plötzlich einekaputte Webseite hat.
Deswegen ist das immer so eine Sache,ob man sich bei diesen Plugins einfach
immer oder bei allen Updates einfach malso durchtraut.
Und wir erinnern uns,dass das Bild mit der
Achterbahn einfach malirgendwie alles aktualisiert.
Kann gut gehen, muss nicht, weiß mannicht.
Natürlich, je weniger Plugins ihr habt,umso weniger Probleme habt ihr auch in der
Kompatibilität zwischen zwei oder mehrverschiedenen Plugins.
Logisch.
Und das System der Reihenfolge ist nichtkonsistent.
Auch da gibt es meistens irgendwas,was funktioniert.
Aber immer muss es nicht sein.
Ihr müsst immer darauf gepasst sein,dass es auch mal wieder schief geht.
Und es gibt den Dreiklang der bestenSachen, die man tun kann für gute Updates.
Backups machen, das hatten wir schon.
Testsystem hatten wir auch.
Changelog habe ich jetzt mehrfach erwähnt.
Wenn man die dreiThemen irgendwie beachtet,
dann funktioniert dasfast immer ganz gut.
Jetzt noch letzte Folie.
Ihr fragt euch, wie kommt der Typ aufdiese eine Million Updates.
Also ich meine, das ist ja eine heftigeZahl.
Aber die stimmt.
Die stimmt wirklich.
Ihr habt mich jetzt gesehen, ihr habtmeinen Namen schon gelesen.
Ich bin Geschäftsführer der Webwisser unddie Webwisser betreiben WP-Wartung24.
Wir machen nichts anderes als soWordPress-Wartung und sowas.
Wir haben etwas über 800 Seiten in derBetreuung, die wir regelmäßig aktualisieren.
Und wenn man das zusammenzählt,kommen wir im Moment so auf
2000 bis 3000 Updates, diewir so pro Woche durchziehen.
Und wenn man das jetzt mal hochrechnet,ich selber bin seit 10 Jahren im Geschäft.
Wenn man dann noch die dazuzählt,wo die gar nicht bei uns in der Wartung
sind, sondern wo wir mal nur mal alleUpdates gemacht haben, irgendwie was
repariert haben, deswegen ein paar Sachengemacht haben, dann kommen wir plötzlich
auf so eine Zahl, die ungefähr eineMillion Updates beinhaltet.
Das ist eine erschreckende Menge.
Aber dafür habe ich nur. Wie vieleBeispiele habe ich gehabt?
10?
12?
Also erhältst du es zu einer Million,ist das okay?
Gut.
Das war's.
Ich bin 100% in time, habe ich Glückgehabt.
Hatte ein bisschen Sorge, aber das hatgeklappt.
Vielen Dank und ihr habtnatürlich die Möglichkeit,
da jetzt irgendwelchelustigen Fragen noch zu stellen.
Und es gibt einen Link für die Folien.
Ich hoffe, der funktioniert auch.
Aber die sollten da sein.
Und wenn ihr Fragen habt, immer her damit.
Genau.
Super zu der Frage.
Mega spannend.
Also
Es ging um Visual Regression Testing, alsoum den visuellen Test nach einem Update.
In der Erkennung hat sich da was auf derSeite geändert, ist was kaputt gegangen
und die Frage, welche Tools es da gibt undnach einem Test sind die auch unter
Umständen, haben die mal false positivesgeliefert, weil sie irgendwelche Pixel
-Alarme gegeben haben, dass sich wasgeändert hat, aber eigentlich war es nur
dynamischer Content, der sich geändert hatund nicht ein Fehler auf der Seite.
Das ist eine Frage für einen komplettenVortrag.
Also es gibt diverse Tools, auch imWordPress-Umfeld mit WordPress-Plugins,
die man installieren kann und dann testenkann.
Aber dein false positive Problem lässtsich damit nur eingeschränkt lösen.
Weil wenn man sehr vieldynamischen Content auf der
Seite hat, dann ist das halteine Änderung auf der Seite.
Und das Ding weiß natürlichnicht, ob es jetzt anständige
Änderungen sind oder obes kaputte Änderungen sind.
Was man meistens kann, ist mit Individual-CSS für diesen Test bestimmte Bereiche
ausblenden oder sonst irgendwas damitmachen, damit man da solche Sachen vermeidet.
Das Problem daran ist, dann wird da auchnicht mehr getestet.
Also wenn du den Bereich ausblendest undda ist was kaputt drin gewesen,
also wirklich kaputt, findet der Tester esnatürlich dann auch.
Abgesehen vom Screenshotting, kannst dunatürlich auch so mit sowas wie Playwright
oder Cypress wirklich Frontend-Testsprogrammieren, die nicht zwei Screenshots
vergleichen, sondern tatsächlich die Seitedurchtesten im Frontend.
Da kannst du ja auch Abfragenmachen, ob bestimmtes CSS mit
bestimmten Werten an bestimmtenStellen zur Verfügung steht.
Und damit kannst du es vielleicht zuverlässigerhinkriegen als mit einem Screenshot.
Wobei aus meiner Sicht grundsätzlichbeides sehr gangbare Wege sind,
wahrscheinlich beides zusammen,das eine und das andere, um zumindest bei
einer großen Menge an Websites,wenn man sie irgendwie in der Betreuung
hat, da nicht jede Seite per Handdurchklicken zu müssen.
Weil das ist natürlich irgendwann nichtmehr möglich.
Ja.
Alle Fragen sonst nebenan zu mir.
Genau.
Ich bin noch da.
Gut.
Dankeschön.
Mhm.
Vielen Dank.
Danke, danke.