Für WordPress-Themes (Classic, nicht Block-Themes) kann über einen add_theme_support()
-Aufruf die Unterstützung für die Website-Logo-Funktion aktiviert werden. Dabei gibt es seit WordPress 5.5.0 die Option, das Logo auf der Startseite nicht zu verlinken, allerdings wird dann auch das alt
-Attribut leer gelassen statt mit dem Website-Titel gefüllt. Das kann je nachdem, wie das Logo im Theme genutzt wird, Probleme mit der Barrierefreiheit bedeuten.
Kategorie: WordPress-Snippets
useEntityProp zum Verändern von Beitrags- oder Seitenattributen verwenden
Der Hook useEntityProp
kann verwendet werden, um Attribute von Inhalten wie Seiten und Beiträgen zu verändern. Bisher hatte ich den nur genau so eingesetzt wie in einem Doku-Code-Beispiel, aber vorhin habe ich mir die Funktion etwas genauer angeschaut und hatte einen kleinen 🤯-Moment, als ich verstanden habe, wie der Hook funktioniert.
Block-Stile von WordPress-Core-Blöcken entfernen
Einige Core-Blöcke kommen mit zusätzlichen Block-Stilen daher, wie etwa der Zitat-Block, der neben dem Standard-Stil noch einen großen Stil hat. Wenn diese Core-Block-Stile nicht erwünscht sind, können sie seit WordPress 5.8 mit einem kleinen Code-Snippet entfernt werden.
"Block-Stile von WordPress-Core-Blöcken entfernen" WeiterlesenCore-Optionen auf eigener Settings-Seite verändern
Bei einem Projekt musste ich kürzlich auf einer Settings-Seite im Backend neben eigenen Optionen auch die Core-Option für den Inhalt der Startseite und für die Blogseite einbauen. Das war allerdings nicht so einfach, wie ich erst gedacht hatte, weil die Settings-API genau prüft, welche Optionen von einer Einstellungs-Seite abgeschickt werden dürfen und nur diese abspeichert.
"Core-Optionen auf eigener Settings-Seite verändern" WeiterlesenWordPress-REST-API für nicht eingeloggte User deaktivieren
Bei einem Projekt mit einer vor öffentlichen Zugriffen geschützten Website sollte auch die REST-API nur für eingeloggte User aktiv sein, um zu verhindern, dass darüber Inhalte abgefragt werden können.
Nachdem ich zunächst geprüft habe, ob sich irgendwie die Permission-Callbacks verändern lassen, bin ich auf den rest_authentication_errors
-Filter gestoßen, mit dem die Aufgabe relativ einfach zu lösen ist.
Bestimmte Blöcke in InnerBlocks-Komponente verbieten
Bei der Entwicklung von Gutenberg-Blöcken ist die InnerBlocks
-Komponente ein (zumindest bei mir) oft eingesetztes Mittel. Diese Komponente ermöglicht es, innerhalb eines Blocks weitere Blöcke einzufügen – bei den Core-Blöcken ist sie beispielsweise beim Spalten- und Cover-Block im Einsatz.
Dieser Komponente kann über das Attribut allowedBlocks
ein Array von Blocknamen übergeben werden, um festzulegen, welche Blöcke eingefügt werden dürfen. Das ist zum Beispiel bei Wrapper-Blöcken hilfreich, wie dem Spalten-Block, der als direkten Kindblock nur den Block Spalte erlaubt.
Etwas komplizierter wird es, wenn nur bestimmte Blöcke nicht erlaubt sein sollen, denn etwas wie disallowedBlocks
gibt es nicht.
Hintergrundprozesse 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.
"Hintergrundprozesse in WordPress erstellen" WeiterlesenGutenberg-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" WeiterlesenVerzeichnis 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" WeiterlesenBlock-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.