CSS-Selektoren in PHP eine Klasse voranstellen

Bei einem Slider-Gutenberg-Block habe ich die Möglichkeit eingebaut, über ein Textfeld CSS einzugeben, das sich nur auf diesen einen Block auswirkt. Natürlich soll der User dabei nicht darauf achten müssen, die Selektoren so zu schreiben, dass sie wirklich nur für diesen Block gelten – das soll im Hintergrund vor der Frontend-Ausgabe geschehen.

Um das umzusetzen, habe ich mich nach einer PHP-Lösung zum Parsen von CSS umgeschaut und mit PHP CSS Parser ein passendes Tool gefunden.

"CSS-Selektoren in PHP eine Klasse voranstellen" Weiterlesen

Visuelle Regressionstests mit JLineup

Mit visuellen Regressionstests kann überprüft werden, ob es visuelle Unterschiede zwischen zwei Versionen einer Website gibt. Ein sinnvolles Szenario für so einen Test wäre beispielsweise, den Stand einer Website auf einem Testserver vor und nach dem Deployment einer Änderung zu überprüfen, und die Änderung nur auf den Live-Server zu schieben, wenn es keine visuellen Unterschiede gibt.

Es gibt verschiedene Lösungen zur Durchführung dieser Tests, hier stelle ich euch JLineup vor.

"Visuelle Regressionstests mit JLineup" Weiterlesen

Hintergrund­prozesse in WordPress erstellen

Wenn ein PHP-Skript ausgeführt wird, lädt die Seite normalerweise so lang, bis die Aufgabe ausgeführt ist (oder es einen Fehler gibt). In vielen Fällen ist das auch kein Problem, da das Skript nicht lange braucht. Wenn es aber eine oder mehrere aufwendige Aufgaben erledigen muss und damit eventuell mehrere Minuten oder sogar Stunden beschäftigt ist, wäre es praktisch das im Hintergrund ablaufen zu lassen. Hier zeige ich, wie das in WordPress umgesetzt werden kann.

"Hintergrund­prozesse in WordPress erstellen" Weiterlesen

Anwendungs­passwörter in WordPress 5.6

Bisher war im WordPress-Core keine Funktion vorhanden, mit der sich externe Dienste einfach bei der Nutzung der REST-API einer WordPress-Website authentifizieren konnten. Mit WordPress 5.6 und der Integration des Application-Passwords-Plugins in den Core hat sich das geändert und es steht ein User-Flow zur Verfügung, um Dritt-Services bei einer WordPress-Website für spätere Anfragen zu autorisieren.

"Anwendungs­passwörter in WordPress 5.6" Weiterlesen

Auf ein Neues beim Projekt26

Torsten Landsiedel hatte für dieses Jahr das Projekt26 gestartet, bei dem alle zwei Wochen ein Blog-Artikel und ein Kommentar unter einem anderen Artikel geschrieben werden sollte. Bis Anfang Juni war ich auch noch gut dabei, habe dann allerdings stark nachgelassen.

Torsten hat auf seinem Blog im Beitrag »Projekt26 – Jetzt erst recht!« eine schöne Zusammenfassung geschrieben, und es wird auch im nächsten Jahr wieder ein Projekt26 geben. Ich werde dabei sein und diesmal hoffentlich auch bis zum Ende durchhalten.

Mein Problem mit statischen Gutenberg-Blöcken

Bei Gutenberg-Blöcken gibt es zwei Möglichkeiten: entweder wird das Block-Markup direkt beim Speichern eines Inhalts generiert und fertig in der Datenbank gespeichert (statisch). Oder es wird nur der Block-HTML-Kommentar in der Datenbank gespeichert, gegebenenfalls mit Attributen, und dann vor der Anzeige im Frontend das Markup dynamisch generiert.

Theoretisch sind dynamische Blöcke für Fälle wie Anzeige der letzten Beiträge gedacht, und statische für alle anderen Fälle, wo sich nichts ändern soll, ohne das bei dem Block etwas geändert wird. Allerdings gibt es bei den statischen Blöcken ein ziemlich großes Problem.

"Mein Problem mit statischen Gutenberg-Blöcken" Weiterlesen

Lazy Loading in WordPress 5.5 – warum Lazy Loader trotzdem weiter nützlich ist

WordPress 5.5 bringt Unterstützung für das Markup zum nativen Lazy Loading mit. Dadurch kommt die Frage auf, ob die vielen Lazy-Loading-Plugins jetzt ausgedient haben. Ich werde das hier für mein Plugin Lazy Loader beantworten.

"Lazy Loading in WordPress 5.5 – warum Lazy Loader trotzdem weiter nützlich ist" Weiterlesen

Gutenberg-Farboption mit der Theme-Farbpalette erstellen

Einige Core-Blöcke kommen bereits mit Optionen für Text- und Hintergrundfarbe, etwa der Absatz-Block. Hier zeige ich, wie eine Farb-Option mit den vom Theme definierten Farbwerten für einen Block erstellt werden kann.

"Gutenberg-Farboption mit der Theme-Farbpalette erstellen" Weiterlesen

Verzeichnis mit vielen Dateien in mehreren Schritten mit PHP kopieren

Ich arbeite momentan an einem kleinen eigenen Projekt, bei dem unter anderem ein WordPress-Plugin eine Kopie der Installation erstellen muss. Da ich die Server-Umgebung der potenziellen User nicht kenne, kann ich weder davon ausgehen dass ich dafür Linux-Befehle nutzen kann, noch das ein hoher Wert für die PHP-max_execution_time gesetzt ist.

Das Kopieren muss also über PHP ablaufen und auch funktionieren, wenn zum Beispiel nur 30 Sekunden Skript-Laufzeit zur Verfügung stehen.

"Verzeichnis mit vielen Dateien in mehreren Schritten mit PHP kopieren" Weiterlesen

Block-Attribute abhängig von der Block-Position setzen

In einem kürzlich abgeschlossenen Projekt wollte ich für die Bilder in einem Slider-Block das sizes-Attribut nutzen. Da der Slider aber nicht immer in derselben Situation angezeigt wird, also beispielsweise über die volle Breite des Viewports (ein sinnvoller Wert für sizes wäre hier 100vw), sondern auch in normaler Content-Breite oder innerhalb von Spalten-Blöcken, musste der Wert für ein optimales Ergebnis abhängig von der Position des Slider-Blocks sein.

"Block-Attribute abhängig von der Block-Position setzen" Weiterlesen