Irgendwann reicht das, was Theme und Plugins mitbringen, nicht mehr aus.
Dann brauchen Sie eigenen Code, und dafür gibt es drei Orte: die Datei functions.php, ein Child-Theme oder ein eigenes Plugin.
Welcher Ort der richtige ist, entscheidet darüber, ob Ihre Anpassung das nächste Update übersteht.
Dieser Beitrag geht alle drei durch, dazu die Frage, wie Sie ohne bezahlte Plugins auskommen, wie Sie ein Buchungs- oder Bestellsystem einbauen und warum Sie eine Testumgebung brauchen.
Inhalt
- Die Datei functions.php
- Die gefährlichste Abkürzung, und was Sie stattdessen tun
- Das Child-Theme
- Ein eigenes Plugin schreiben
- Ohne bezahlte Plugins auskommen
- Ein Online-System einbauen
- Testumgebung statt Experiment am Kunden
- Fazit
Die Datei functions.php
Diese Datei gehört zu Ihrem Theme und verhält sich wie ein Plugin, das nur zu diesem Theme gehört.
WordPress lädt sie bei jedem Seitenaufruf automatisch und führt aus, was darin steht.
Sie finden sie unter wp-content/themes/ im Ordner Ihres aktiven Themes.
Typische Aufgaben, die dort gelöst werden.
- Widget-Bereiche anmelden, um zusätzliche Flächen für die Seitenleiste oder den Fußbereich zu schaffen.
- Eigene Shortcodes anlegen, also Kurzbefehle, die Sie im Editor einsetzen und die etwas ausgeben.
- Neue Bildgrößen ergänzen, wenn die vorgegebenen Größen nicht zu Ihrem Layout passen.
- Beitragsformate einschalten, sofern Ihr Theme sie unterstützt.
- Eigene Inhaltstypen anlegen, etwa ein Portfolio, Referenzen oder Stellenanzeigen, die getrennt von Seiten und Beiträgen verwaltet werden.
Der entscheidende Nachteil steht selten deutlich genug da.
Alles, was Sie in die functions.php Ihres Themes schreiben, ist beim nächsten Theme-Update überschrieben und beim Theme-Wechsel verloren.
Nicht beschädigt, sondern weg.
Deshalb gehört eigener Code in ein Child-Theme oder in ein eigenes Plugin, nie in das Original.
Zum Bearbeiten selbst genügt ein Editor mit Syntaxhervorhebung, etwa „Visual Studio Code“, „Sublime Text“ oder „Notepad++“.
Die Hervorhebung ist kein Komfort, sondern Ihre Fehlerkontrolle: eine fehlende Klammer sehen Sie dort sofort.
Die gefährlichste Abkürzung, und was Sie stattdessen tun
In vielen Anleitungen steht, Sie könnten die functions.php bequem im WordPress-Verwaltungsbereich unter Design und Theme-Editor bearbeiten.
Tun Sie das nicht.
Warum nicht?
Weil diese Datei bei jedem Seitenaufruf ausgeführt wird, auch beim Aufruf des Verwaltungsbereichs.
Ein einziges fehlendes Semikolon führt dazu, dass die gesamte Website weiß bleibt, und zwar einschließlich der Anmeldeseite.
Sie sitzen dann vor einer leeren Seite und können Ihren Fehler nicht mehr zurücknehmen, weil der Editor selbst nicht mehr erreichbar ist.
Neuere WordPress-Versionen prüfen den Code vor dem Speichern und fangen einfache Fehler ab, aber verlassen Sie sich darauf nicht.
Zwei sichere Wege stattdessen.
Über den Dateizugriff.
Bearbeiten Sie die Datei über den Dateizugriff Ihres Anbieters oder ein Programm wie „FileZilla“.
Legen Sie vorher eine Kopie an.
Geht etwas schief, laden Sie die Kopie zurück und die Website läuft wieder, egal wie kaputt der neue Code war.
Über ein Plugin für Code-Schnipsel.
Solche Plugins verwalten einzelne Funktionen getrennt voneinander und schalten einen Schnipsel automatisch ab, wenn er einen Fehler auslöst.
Zwei Vorteile obendrein: der Code hängt nicht am Theme und übersteht damit jeden Theme-Wechsel, und Sie sehen auf einer Liste, was Sie im Laufe der Jahre alles angebaut haben.
Für die meisten Betreiber ist das der beste Weg von allen.
Und unabhängig vom Weg gelten vier Regeln.
- Backup vorher. Immer, auch bei zwei Zeilen.
- Eine Änderung auf einmal. Danach die Website als Gast prüfen. Wer fünf Funktionen gleichzeitig einbaut, sucht den Fehler anschließend in fünf Funktionen.
- Kommentare schreiben. Eine Zeile darüber, was der Code tut und wann Sie ihn eingebaut haben. In einem Jahr wissen Sie es sonst nicht mehr.
- Eigenen Code am Ende ergänzen, damit er nicht mitten in bestehende Funktionen gerät.
Das Child-Theme
Ein Child-Theme ist ein Theme, das Aussehen und Funktionen eines anderen Themes erbt.
Sie aktivieren das Child-Theme, Ihre Anpassungen liegen darin, und das Original bleibt unberührt.
Warum Sie eines brauchen
- Updates werden möglich. Das ist der eigentliche Grund. Ohne Child-Theme stehen Sie irgendwann vor der Wahl, entweder Ihre Anpassungen zu verlieren oder das Theme nie wieder zu aktualisieren. Und ein nicht aktualisiertes Theme ist eine offene Sicherheitslücke.
- Fehler sind leicht zu finden. Läuft etwas schief, aktivieren Sie kurz das Original. Zeigt sich der Fehler dort nicht, liegt er in Ihren Anpassungen.
- Sie bleiben frei. Sie können Vorlagendateien überschreiben, ohne die Originaldateien anzufassen.
Von Hand erstellen
Legen Sie in wp-content/themes/ einen neuen Ordner an, etwa meintheme-child.
Darin brauchen Sie zwei Dateien: eine style.css und eine functions.php.
An den Anfang der style.css gehört ein Kommentarblock, in dem der Name des Child-Themes steht und, entscheidend, der Ordnername des übergeordneten Themes.
Genau hier passiert der häufigste Fehler: der Ordnername wird verwechselt mit dem angezeigten Namen des Themes.
Stimmt der Eintrag nicht, findet WordPress das Original nicht und Ihre Website erscheint völlig unformatiert.
Die genaue Schreibweise des Kommentarblocks steht in der offiziellen WordPress-Dokumentation, und da sich Details ändern, holen Sie sie besser dort als aus einem älteren Artikel.
Mit „Divi“
Für Divi gibt es fertige Generatoren, in die Sie nur den Namen und die Angaben zum Theme eintragen.
Heraus kommt eine Zip-Datei, die Sie wie ein normales Theme hochladen und aktivieren.
Mit „Elementor“
Elementor bringt ein eigenes schlankes Theme namens „Hello“ mit, das als Grundlage dient.
Dazu gibt es ein passendes Child-Theme zum Herunterladen, sodass Sie nichts selbst schreiben müssen.
Wieder entfernen
Sie aktivieren im Bereich Design wieder das übergeordnete Theme und löschen das Child-Theme anschließend.
Sichern Sie vorher Ihre Anpassungen, denn mit dem Ordner sind sie weg.
Rechnen Sie außerdem damit, dass Einstellungen, die am Child-Theme hingen, nach dem Wechsel zurückgesetzt sind, etwa Menüpositionen und Widgets.
Die Grenzen, die niemand nennt
Ein Child-Theme schützt Ihren Code, nicht Ihre Inhalte.
Seiten, die Sie mit einem Seitenbaukasten gestaltet haben, liegen in der Datenbank und haben mit dem Theme nichts zu tun.
Und Sie pflegen jetzt zwei Themes: beide brauchen Updates, und nach einem größeren Update des Originals kann eine von Ihnen überschriebene Vorlagendatei veraltet sein und Fehler verursachen.
Wenn Sie ohnehin nur ein paar Funktionen ergänzen und keine Vorlagen umbauen, ist ein Plugin für Code-Schnipsel die einfachere Lösung.
Ein eigenes Plugin schreiben
Ein Plugin ist der sauberste Ort für eigene Funktionen, weil es unabhängig vom Theme lebt.
Was Sie vorher brauchen
WordPress ist in PHP geschrieben, also brauchen Sie PHP-Grundkenntnisse.
Grundlagen finden Sie in der offiziellen PHP-Dokumentation und auf den üblichen Lernplattformen.
Der Aufbau
Im einfachsten Fall besteht ein Plugin aus einer einzigen PHP-Datei im Verzeichnis wp-content/plugins/.
Legen Sie dort eine Datei mit einem eindeutigen Namen an, etwa mein-plugin.php.
An den Anfang gehört ein Kommentarblock, an dem WordPress das Plugin überhaupt erst erkennt.
<?php
/**
* Plugin Name: Mein Plugin
* Description: Was dieses Plugin tut
* Version: 1.0.0
* Author: Ihr Name
*/
Sobald diese Datei liegt, erscheint das Plugin in Ihrer Plugin-Liste und lässt sich aktivieren.
Wie der Code in WordPress eingreift
Über sogenannte Hooks, also Ankerpunkte im WordPress-Kern, an die Sie eigene Funktionen hängen.
Es gibt zwei Arten.
Eine Aktion führt zu einem bestimmten Zeitpunkt etwas aus, etwa beim Speichern eines Beitrags.
Ein Filter verändert einen Wert, bevor WordPress ihn verwendet, etwa den Text eines Beitrags vor der Ausgabe.
Wer diesen Unterschied verstanden hat, versteht den größten Teil der WordPress-Entwicklung.
Testen und Fehler finden
Schalten Sie die Fehlerausgabe von WordPress ein, solange Sie entwickeln, und schreiben Sie die Meldungen in eine Protokolldatei, statt sie auf der Seite anzuzeigen.
Sonst lesen Ihre Besucher die Fehlermeldungen mit, und darin stehen Dateipfade, die niemand von außen kennen muss.
Und schalten Sie die Fehlerausgabe vor dem Veröffentlichen wieder ab.
Veröffentlichen und verdienen
Fertige Plugins können Sie im offiziellen WordPress-Verzeichnis einreichen, wo sie geprüft und dann für alle sichtbar werden.
Geld verdienen lässt sich damit vor allem auf zwei Wegen.
Entweder über eine kostenlose Grundfassung mit kostenpflichtiger Erweiterung, oder über bezahlte Zusatzmodule zu einem kostenlosen Plugin.
Rechnen Sie dabei mit dem Teil, den niemand einplant: der Support.
Ein Plugin mit tausend Nutzern erzeugt Anfragen, und die kosten mehr Zeit als das Programmieren.
Ohne bezahlte Plugins auskommen
Zuerst die Warnung, weil sie an dieser Stelle die wichtigste ist.
Installieren Sie niemals sogenannte freigeschaltete Fassungen bezahlter Plugins aus fremden Quellen.
Diese Dateien sind nicht einfach kostenlose Kopien, sondern in vielen Fällen mit Schadcode versehen, der Hintertüren öffnet oder Spam über Ihren Server verschickt.
Dazu bekommen Sie keine Updates, womit jede künftige Sicherheitslücke offen bleibt.
Es gibt genug legale Wege, Geld zu sparen.
- Kostenlose Alternativen suchen. Zu fast jedem bezahlten Plugin gibt es eine kostenlose Entsprechung, die für einen normalen Betrieb ausreicht. Achten Sie auf die Anzahl der Installationen und darauf, wann das Plugin zuletzt aktualisiert wurde.
- Die kostenlose Fassung genau ansehen. Viele Hersteller sperren nur Funktionen, die Sie gar nicht brauchen.
- Selbst wenige Zeilen Code einsetzen. Manches, wofür ein ganzes Plugin installiert wird, sind drei Zeilen in einem Code-Schnipsel. Jedes Plugin kostet Ladezeit, also ist der Verzicht sogar der bessere Weg.
- Von Hand optimieren. Bilder vor dem Hochladen verkleinern, ungenutzte Erweiterungen löschen, Schriften lokal einbinden. Das leisten sonst bezahlte Optimierungs-Plugins.
- Die Community nutzen. In den Support-Foren und Hilfeseiten stehen Lösungen für praktisch jedes verbreitete Problem, kostenlos.
- Regelmäßig pflegen. Eine gewartete Website braucht weniger Reparaturwerkzeuge als eine vernachlässigte.
- Code erzeugen lassen. Mit einem Sprachmodell kommen Sie zu brauchbaren kleinen Funktionen, wenn Sie die Anforderung genau beschreiben und mit mehreren Durchläufen rechnen.
Zum letzten Punkt eine Einschränkung, die ernst zu nehmen ist.
Erzeugter Code funktioniert oft, ist aber regelmäßig unsicher: Eingaben werden nicht geprüft, Berechtigungen nicht abgefragt, Ausgaben nicht maskiert.
Bei Code, der nur etwas ausblendet, ist das harmlos.
Bei Code, der Formulareingaben verarbeitet oder in die Datenbank schreibt, bauen Sie sich damit eine Sicherheitslücke ein, und verantwortlich sind Sie.
Lassen Sie solchen Code prüfen, bevor er live geht.
Ein Online-System einbauen
Gemeint sind Terminbuchung, Bestellung, Anfragestrecken oder ein Kundenbereich.
- Die passende Lösung wählen. Vergleichen Sie Funktionen, Preis und Bedienbarkeit, und prüfen Sie, ob der Anbieter seine Daten in Europa verarbeitet. Bei Terminen mit Namen und Anliegen ist das keine Nebenfrage, bei Praxen und Kanzleien gar nicht.
- Über Plugin oder Einbettung integrieren. Die meisten Anbieter liefern ein WordPress-Plugin oder einen Code zum Einbetten mit.
- Das Aussehen anpassen. Farben, Schriften und Abstände an Ihre Website angleichen. Wirkt der Buchungsbereich wie eine fremde Seite, bricht ein Teil der Nutzer dort ab, weil er sich nicht mehr sicher ist, bei wem er gerade bucht.
- Vollständig durchtesten. Führen Sie eine echte Buchung oder Bestellung durch, vom ersten Klick bis zur Bestätigungsmail, und zwar auf dem Handy. Prüfen Sie dabei auch, ob die Benachrichtigung bei Ihnen ankommt und nicht im Spam landet.
- Den Nutzern erklären, wie es geht. Ein kurzer Hinweis über dem Formular und ein Weg, stattdessen anzurufen. Ein Teil Ihrer Kunden wird das System nie benutzen, und dieser Teil darf nicht verloren gehen.
- Darauf hinweisen. Auf der Startseite sichtbar platzieren und in Ihren Nachrichten erwähnen, sonst ruft weiter jeder an und Sie haben nichts gewonnen.
Ergänzen Sie außerdem den Anbieter in Ihrer Datenschutzerklärung, denn dort werden personenbezogene Daten Ihrer Kunden verarbeitet.
Testumgebung statt Experiment am Kunden
Im Zusammenhang mit Sicherheit fällt oft der Begriff Sandboxing, also das Ausführen eines Programms in einer abgeschotteten Umgebung.
Der Begriff stammt aus der Softwareentwicklung und beschreibt bildlich einen Sandkasten: man darf darin alles, und nichts davon verlässt den Kasten.
Genau so arbeitet Ihr Browser, der jede Website isoliert ausführt, damit eine schädliche Seite nicht auf Ihr Betriebssystem zugreifen kann.
Und hier eine Richtigstellung, weil sie in vielen Artikeln zu diesem Thema fehlt.
Dieser Schutz läuft auf dem Gerät des Besuchers und ist nichts, was Sie als Betreiber einschalten oder verkaufen könnten.
Werkzeuge zur Isolation von Anwendungen oder zum abgeschotteten Betrieb eines Browsers gehören in die Unternehmens-IT, nicht auf Ihre Website.
Was für Sie wirklich hinter dieser Idee steckt, ist eine Testumgebung.
Also eine vollständige Kopie Ihrer Website, auf der Sie Updates, neue Plugins und eigenen Code ausprobieren, ohne dass ein Besucher etwas davon merkt.
Drei Wege dorthin.
- Über Ihren Anbieter. Viele bieten eine solche Kopie auf Knopfdruck an, samt Möglichkeit, die Änderungen später zu übernehmen. Der bequemste Weg, prüfen Sie also zuerst, ob Ihr Tarif das enthält.
- Auf einer Unteradresse. Eine zweite Installation unter einer Adresse wie
test.ihredomain.de, die Sie für Suchmaschinen sperren, damit die Testfassung nicht in den Suchergebnissen auftaucht. - Lokal auf Ihrem Rechner. Mit einem Programm für lokale WordPress-Installationen läuft die Kopie auf Ihrem eigenen Gerät, ohne Server und ohne Kosten.
Eine Testumgebung ist die einzige Maßnahme in diesem ganzen Beitrag, die jeden Fehler auffängt, den Sie beim Anpassen machen können.
Fazit
Eigener Code gehört nie in die functions.php des Original-Themes, sondern in ein Child-Theme, ein eigenes Plugin oder ein Plugin für Code-Schnipsel.
Bearbeiten Sie diese Datei nicht im Verwaltungsbereich, weil ein Tippfehler dort die ganze Website samt Anmeldeseite ausschaltet.
Sparen Sie an Plugins, aber nie über freigeschaltete Fassungen aus fremden Quellen.
Sollten Sie sich beim Anpassen doch einmal aussperren, ist das kein Grund zur Panik.
Ihre letzte Änderung liegt in einer Datei, und über den Dateizugriff Ihres Anbieters nehmen Sie sie zurück.
Deshalb legen Sie vorher eine Kopie an, denn dann ist aus dem Notfall ein Handgriff geworden!



