Schlagwort: #Projekt26

#Projekt26 ist eine Initative von Torsten Landsidel, dass Bloggen wieder zu beleben. Alle zwei Wochen muss ein Blogartikel geschrieben werden und ein anderen Blogartikel kommentiert werden. Ziel ist es den Blog wieder als zentralen Ort für den Austausch zu nutzen und wieder weniger abhängig von Social Media Plattformen zu werden.

Eine Übersicht an Beiträgen die im Rahmen des Projektes geschrieben worden sind, findet ihr auf Twitter unter dem Hashtag #Projekt26 oder in dem Gist von Torsten.

WordPress: Remote HTTP Request vor Timeouts absichern

Zusätzliche Daten & Informationen über einen HTTP Requests in einem WordPress Plugin oder Themen zu laden ist eine sehr schöne Möglichkeit den eigenen Content mit zusätzlichen Informationen anzureichern. Ich nutzte für Travel-Dealz.de mehrere APIs z.B. um Klimadiagramme für Reiseziele bereitzustellen oder Status- und Vielfliegermeilen für einen Flug zu berechnen.

Allerdings werden die Abfragen i.d.R. beim Seitenaufruf durchgeführt und das kann den Seitenaufruf für den Besucher der Seite stark verzögern oder im schlimmsten Fall zu einem Timeout führen = der Besucher erhält nur eine Fehlermeldung und verlässt die Seite wieder.

Weiterlesen „WordPress: Remote HTTP Request vor Timeouts absichern“

WordPress Snippets für Custom Post Status

In WordPress gibt es Custom Post Types, Custom Fields, Custom Taxonomies und auch Custom Post Status, um neben Draft, Future, Pending, Private, Publish und Trash eigene Custom Post Status bereitzustellen. Leider wird das Thema in den letzten Jahren sehr stiefmütterlich behandelt und man kann schnell Eindruck gewinnen, dass man am liebsten Custom Post Status komplett aus dem Core entfernen würde. So werden Custom Post Status nicht mehr wirklich in Gutenberg berücksichtigt und ein Ticket, dass Custom Post Status automatisch in die UI bringen soll, ist seit geschlagenen 11 Jahren offen!

Trotzdem haben Post Status meiner Meinung nach einen entscheidenden Vorteil: Sie werden direkt in der wp_posts Tabelle in der post_status Spalte mit einem Index gespeichert. Filtern oder sortieren anhand dieser Spalte ist damit extrem schnell und erfordert kein JOIN zu einer anderen Tabelle, z.B. wp_postmeta im Fall von Custom Post Fields.

Weiterlesen „WordPress Snippets für Custom Post Status“

WordPress 5.5: Standard Block Vorlagen (Patterns) entfernen

Mit WordPress 5.5 sind endlich die Block Patterns, auf Deutsch Block Vorlagen, in den Core eingezogen. Damit könnt ihr Patterns = Vorlagen für mehrere Blöcke in z.B. der functions.php in eurem Theme erstellen und den Nutzer im Block Editor bereitstellen.

WordPress liefert auch standardmäßig ein paar Beispiele mit. Wem diese Beispiele nicht zusagen, muss die Patterns ebenfalls über die functions.php entfernen.

Weiterlesen „WordPress 5.5: Standard Block Vorlagen (Patterns) entfernen“

Scripts Aktions-abhängig laden, z.B. wenn ein Button geklickt wird

Für WordPress und natürlich andere CMS gibt es tausende Plugins und viele davon laden eigene Scripts und Styles bei euch im Frontend. Die Anzahl und vor allem die Größe kann eure Website-Performance massiv beeinträchtigen. Wie man Plugins dazu bringt, Scripts & Styles nur zu laden, wenn sie wirklich notwendig sind, habe ich euch bereits gezeigt.

Es gibt aber Elemente z.B. Share-Buttons oder Autosuggest-Suchen die sind auf jeder Seite vertreten, werden aber nur bei einem Bruchteil der Seitenaufrufe wirklich von Nutzer genutzt. Nur, wenn der User den Beitrag teilen möchte oder eine Suche eintippt.

Ziel ist es an dieser Stelle das benötigte Script erst zu laden, wenn man sich sehr sicher ist, dass der Nutzer die Aktion ausführen will. Im Idealfall muss der User vorher auf einen Button klicken aber auch wenn der User mit der Maus über dem Suchfeld oder Button schwebt, kann als Auslöser herangezogen werden.

Weiterlesen „Scripts Aktions-abhängig laden, z.B. wenn ein Button geklickt wird“

WordPress Website als App (PWA) im Google Play Store veröffentlichen

Immer mehr Menschen nutzen nur noch ihr Smartphone und dort werden vor allem Apps genutzt. Doch eine App zu programmieren und vor allem zu pflegen kann neben der eigenen WordPress Website sehr zeitaufwendig sein.

Ich kann davon mit Travel-Dealz ein Lied singen. Alle Features einer modernen Website in einer App abzubilden ist mit immensem Aufwand verbunden. Dabei kann man Websites so gut mobil optimieren, dass eine zusätzliche App eigentlich überhaupt nicht notwendig ist.

Seit einigen Jahren gibt es bereits sogenannte Progressive Web Apps, kurz PWA. Websiten, die zahlreiche Merkmale von nativen Apps besitzen. Sie können wie eine App auf dem Smartphone „installiert“ werden und man findet auf dem Homescreen das App-Icon. Öffnet man die PWA, wird einfach die Website in einem Webview (nicht im Browser) geöffnet. Außerdem sind Push Notifications oder Offline-Funktionen möglich.

Der größte Nachteil ist aber, dass man nicht im App Store für iPhone/iPad oder im Google Play Store für Android vertreten ist.

Zumindest im Google Play Store kann man mittlerweile aber seine Progressive Web App wie eine ganz normale native App veröffentlichen! Deswegen zeige ich euch in diesem Artikel, wie ihr aus eurer WordPress Website eine Progressive Web App macht und diese anschließend im Google Play Store veröffentlicht!

Weiterlesen „WordPress Website als App (PWA) im Google Play Store veröffentlichen“

WordPress Snippet: Artikel-Updates in Feedly anzeigen lassen

Wer seine Website pflegt, hält bestehende Artikel aktuell und überarbeitet sie von Zeit zu Zeit. Warum also nicht den überarbeiteten Artikel wieder auf die erste Seite hochziehen und so neue Leser darauf aufmerksam machen.

Leider bekommen davon eure Feed-Abonnenten z.B. über Feedly, Feedbin… wahrscheinlich nichts mit, weil sich der Globally Unique Identifier, kurz GUID, nicht ändert:

Weiterlesen „WordPress Snippet: Artikel-Updates in Feedly anzeigen lassen“

Standardeinstellungen von WordPress Blöcken ändern

Fast jeder WordPress Block für den Block Editor (Gutenberg) verfügt über Einstellungen. Zum Beispiel, ob ein Bild zentriert, in weiter Breite oder sogar voller Breite angezeigt werden soll oder ob der Link im Button in einem neuen Fenster geöffnet werden soll.

Diese Einstellungen für einen Block werden i.d.R. als Attribut abgespeichert und haben auch immer einen Standardwert. Nicht immer passt dieser Standardwert allerdings in meinen Workflow und jedes Mal, wenn ich den Wert bearbeite, wächst bei mir die Motivation die Standardeinstellung zu ändern. Zum Glück kann man das mit ein bisschen JavaScript schnell überschreiben.

Weiterlesen „Standardeinstellungen von WordPress Blöcken ändern“

Interne Link Suche im WordPress Block Editor erweitern (für Kategorien, Schlagwörter…)

Vor den Umstieg auf den Block Editor aka Gutenberg habe ich im Classic Editor das Plugin Better Internal Link Search verwendet, um im Link-Dialog nicht nur nach internen Beiträgen und Seiten zu suchen, sondern auch nach Kategorien, Schlagwörtern und weiteren Terms. Leider unterstützt das Plugin aber nicht den Block Editor und die Autoren haben wohl auch das Interesse an dem Plugin verloren (letztes Update vor 4 Jahren).

Die Suche z. B. nach Kategorien, Schlagwörtern (zusammengefasst Terms genannt) lässt sich aber recht einfach umsetzen, weil man den WP_REST_Search_Handler recht einfach erweitern kann:

Weiterlesen „Interne Link Suche im WordPress Block Editor erweitern (für Kategorien, Schlagwörter…)“

Laravel Tools für WordPress: Webpack in elegant mit Laravel Mix

In der kleinen Serie zu Laravel Tools für WordPress, habe ich euch bereits Laravel Valet für die lokale Entwicklungsumgebung vorgestellt. Heute geht es wieder um ein Tool, was euch bei der Entwicklung von Themes & Plugins helfen kann. Besonders, wenn ihr an Block Editor (Gutenberg) Blöcken schraubt.

Laravel Mix vereinfacht euch die Arbeit mit Webpack enorm und spätestens, wenn ihr euren ersten Block in JavaScript programmiert, kommt ihr nicht mehr an Webpack (oder einem anderen JavaScript-Modul-Packer) vorbei. Die Konfiguration von Webpack empfinde ich aber als sehr kompliziert. Vor allem, wenn man noch nie mit React gearbeitet hat. Laravel Mix nimmt euch die Konfiguration in 80% der Fälle ab und reduziert den Konfigurationsaufwand extrem.

Weiterlesen „Laravel Tools für WordPress: Webpack in elegant mit Laravel Mix“

Die Subscribe-Funktion des WordPress Block Editors (Gutenberg) richtig nutzen

Der Block Editor von WordPress, auch als Gutenberg bekannt, ist komplett in JavaScript bzw. mit React geschrieben. WordPress ist vor allem so ein mächtiges CMS geworden, weil man als Entwickler das Verhalten für Actions & Filter sehr einfach seinen Bedürfnissen anpassen kann. Das ist meiner Meinung nach beim Block Editor etwas auf der Strecke geblieben. Zwar gibt es einige Filter, für Actions muss man aber auf die subscribe()-Funktion zurückgreifen.

Weiterlesen „Die Subscribe-Funktion des WordPress Block Editors (Gutenberg) richtig nutzen“