Kommt mit WordPress 4.7 eine Option für Custom CSS in den Core?

WordPress 4.6 wurde vor wenigen Wochen veröffentlicht. Es geht aber natürlich sofort weiter mit der Entwicklung, schließlich ist für Dezember 2016 der Release von WordPress 4.7 geplant.

Ein neuer Vorschlag ist die Einführung einer Option zur Eingabe von Custom CSS im Customizer als WordPress Core Feature.

Hintergrund des Feature-Vorschlags

Im Moment beinhaltet WordPress einen Theme Editor, mit dem sich alle Dateien des Themes ansehen und bearbeiten lassen – und dass direkt im WordPress Admin Bereich. Der Theme Editor bringt aber auch einige Nachteile mit sich, gerade für WordPress Einsteiger:

Nachteile des Theme Editors

  • Theme Updates ersetzen alle Dateien des Themes. Als Folge gehen jegliche Änderungen mit dem Theme Editor nach einem Update verloren!
  • Keine Vorschau der Modifikationen, wodurch Änderungen an Live-Sites wirklich niemals mit dem Theme Editor gemacht werden sollten.
  • Einsteiger in Webentwicklung laufen leicht Gefahr durch eine falsche Syntax in den PHP Dateien die komplette Seite zu zerschießen.
  • Erfahrene Nutzer bearbeiten Theme Dateien lokal und nicht im WordPress Backend.

Aufgrund der vielen Nachteile war ich persönlich nie ein Freund des Theme Editors und hätte ihn lieber als zusätzliches Plugin anstatt als Core-Feature.

Der Theme Editor wird jedoch von Vielen als wichtiger Bestandteil des Cores angesehen:

The Theme Editor represents an important part of WordPress‘ mission to democratizing publishing, acting as a gateway for introducing users to their ability to create literally anything with WordPress by editing and writing code. Many developers of all abilities got their start with PHP or other related technologies by editing themes with the theme editor in the WordPress admin.

Aufgrund der oben genannten Nachteile wird nun eine Custom CSS Option im Customizer als Ersatz vorgeschlagen:

At this point in the development of the WordPress ecosystem, we can do a much better job of introducing users to code-based customization for their sites. This ticket proposes leveraging the Customizer to offer instant live previews of code-based changes for improved user experience. Rather than blindly making edits that can completely take down a site where the user potentially has no idea what FTP is, every change is instantly previewed and no changes are published until the user is ready to push them live.

Da WordPress Einsteiger wohl vor allem visuelle Änderungen an ihrem Theme vornehmen möchten soll das neue Feature vorerst nur Custom CSS Code erlauben. Daneben soll auch der existierende Theme Editor bestehen bleiben und erst in zukünftigen Versionen entfernt werden.

Vorteile einer Custom CSS Einstellung im Core

Ich bin ein großer Fan dieses Vorschlags. Generell bin ich eher ein Verfechter für einen möglichst schlanken Core und gegen zu viele Features, aber eine Option zur Eingabe von Custom CSS macht sehr viel Sinn.

Die meisten WordPress Webseiten verfügen momentan wohl über Optionen für CSS Code. Viele Themes verfügen über eine Custom CSS Einstellung für kleinere Anpassungen. Und auch die zahlreichen CSS Plugins sind auf hunderttausenden Websites installiert. Es spricht viel dafür ein Feature, dass die meisten Nutzer verwenden, auch im Core zu haben.

Eine einheitliche Core Lösung würde die meisten CSS Plugins obsolet machen und bewahrt vor allem Theme Entwickler davor, in jedem Theme extra Support dafür einbauen zu müssen. Für Nutzer ist der Vorteil vor allem eine einheitliche UI. Anstatt bei jedem Theme erneut nach den CSS Optionen suchen zu müssen befinden sie sich dann immer am gleichen Ort.

Ein weiterer Vorteil liegt in der Validierung und Sanitization von Nutzereingaben. Die meisten Themes entfernen HTML Code aus Sicherheitsgründen, aber nehmen sonst keine Validierung des CSS Inputs vor. Im Core können Bibliotheken wie CSSTidy dafür verwendet werden, was für normale Themes ein Overkill wäre. Vorstellbar sind auch Fehlermeldungen bei Syntaxfehlern oder Syntax Highlighting des CSS Codes.

Technische Umsetzung

Geplant ist die Einführung einer neuen Sektion im Customizer zur Eingabe des CSS Codes. Die Option soll eingegebenes CSS sofort live auf der Seite anzeigen, ohne ein Speichern oder Refresh des Customizers zu benötigen. Anpassungen mit CSS können so sicher ausprobiert und getestet werden, bevor sie gespeichert werden.

Die Umsetzung des ersten Patchs für das neue Feature wird von John Regan übernommen. Er ist der Author des populären Simple Custom CSS Plugins und ist damit prädestiniert für die Umsetzung.

Fazit

Der Vorschlag für einen Custom CSS Option ist noch in einem frühen Rohzustand. Ob es das Feature in den Release von WordPress 4.7 schafft bleibt abzuwarten. Natürlich kann sich auch die Form und Umsetzung in den nächsten Monaten noch stark ändern.

Link zum Ticket: https://core.trac.wordpress.org/ticket/35395