Welche WordPress-Funktionen du niemals in einem Theme programmieren solltest

Screenshot der WordPress-Themes-Übersicht mit beliebten kostenlosen Designs wie Hello, Astra und Blog

Einleitung

Wenn du regelmäßig mit WordPress arbeitest – sei es als Entwickler, Freelancer oder Agentur – weißt du, wie schnell ein Theme zur Allzweckwaffe mutieren kann. Funktionen, Layouts, Optimierungen, sogar Sicherheitsmechanismen wandern nicht selten direkt in die functions.php. Dabei ist genau das ein häufiger Fehler mit weitreichenden Konsequenzen: mangelnde Wartbarkeit, Performance-Probleme, unnötige Abhängigkeiten und ein Umzug zum nächsten Theme wird zur Mammutaufgabe.

In diesem Artikel analysieren wir, welche Funktionen nicht ins Theme gehören – und vor allem: warum nicht. Du erfährst, wie du deine WordPress-Projekte strukturell sauber aufsetzt, indem du Funktionalität und Design klar voneinander trennst. Denn Themes sollten sich um das Frontend und Styling kümmern – nicht um zentrale Logik oder redaktionelle Features. Genau das ist der Schlüssel zu nachhaltigen, modularen und update-sicheren WordPress-Projekten.

Die folgenden Abschnitte zeigen dir konkret, welche Funktionen du besser in Plugins oder Frameworks auslagerst – unterstützt durch Best Practices, technische Empfehlungen und Entscheidungsgrundlagen. So schaffst du die Basis für skalierbare und langfristig wartbare WordPress-Architekturen.

Warum Trennung von Funktionalität und Design wichtig ist

Die klare Trennung zwischen Funktionalität und Design ist ein zentrales Prinzip moderner WordPress-Entwicklung. Themes sind für die Darstellung zuständig – für Layout, Farben, Typografie und visuelle Struktur. Funktionen hingegen gehören in Plugins oder andere systematische Strukturen. Wenn du diese Grenze verwischst, schadest du langfristig der Wartbarkeit und Skalierbarkeit deiner Website.

Ein Hauptproblem zeigt sich beim Theme-Wechsel: Enthält dein Theme eigene Funktionen wie benutzerdefinierte Beitragstypen oder Shortcodes, verlierst du diese beim Wechsel zu einem anderen Theme. Inhalte werden plötzlich nicht mehr angezeigt, Funktionen brechen weg – eine schlechte User Experience ist die Folge. Auch der Zeitaufwand für die Fehlersuche steigt unnötig.

Darüber hinaus unterläuft eine funktionale Überladung des Themes die WordPress-Philosophie der Modularität. Plugins existieren genau deshalb: Sie kapseln Funktionalität unabhängig vom visuellen Rahmen. So kannst du deine Website flexibel weiterentwickeln, ohne Design und Logik ständig miteinander zu verzahnen.

Auch aus SEO- und Performance-Sicht ergeben sich Vorteile: Plugins lassen sich gezielt optimieren, versionieren und updaten – deutlich einfacher als monolithische Themes mit eingebauten Funktionen. Zudem erleichtert die Trennung automatisierte Tests, CI/CD-Prozesse und Code Reviews.

Fazit: Ein Theme sollte immer austauschbar sein, ohne dass essentielle Funktionalität verloren geht. Wer langfristig wartbare, skalierbare und professionelle WordPress-Projekte entwickeln will, trennt strikt zwischen Design und Funktion.

Diese Funktionen haben nichts im Theme verloren

Im Theme sollte ausschließlich die Darstellung deiner Website definiert sein – nicht deren Funktionalität. Alles, was über Design und Layout hinausgeht, hat im Theme-Code nichts verloren. Warum? Weil Themes gewechselt werden können, ohne dass die Seite ihre Inhalte oder Funktionen verliert. Sobald du Funktionalitäten ins Theme integrierst, bindest du wichtige Features an ein bestimmtes Design – was langfristig zu Wartungsproblemen führt.

Im Folgenden zeige ich dir fünf konkrete Funktionsbereiche, die du konsequent aus dem Theme-Code heraushalten solltest.

Benutzerdefinierte Beitragstypen (Custom Post Types)

Custom Post Types (CPTs) wie „Referenzen“, „Portfolio“ oder „Rezepte“ strukturieren Inhalte jenseits von Seiten und Beiträgen. Sie gehören in ein Plugin – nicht ins Theme. Wenn du sie im Theme registrierst, verschwinden alle dazugehörigen Inhalte beim Theme-Wechsel. CPTs sind klar funktional und damit nicht ans Design gebunden.

Nutze stattdessen ein Plugin wie Custom Post Type UI oder registriere sie in einem eigenen Funktionsplugin. So bleibt deine Inhaltsstruktur unabhängig vom Theme erhalten.

Custom Fields und Metaboxes

Felder für zusätzliche Inhalte wie „Preis“, „Laufzeit“ oder „Bewertung“ sollten mit Advanced Custom Fields (ACF) oder ähnlichen Plugins erstellt werden – nicht über themebasierte Funktionen. Diese Daten werden oft mehrfach verwendet und sind für das Funktionieren der Inhalte essenziell.

Sobald du sie ins Theme einbaust, verlierst du beim Theme-Wechsel die Konfiguration und im schlimmsten Fall auch die Inhalte. Halte solche strukturellen Erweiterungen daher immer im Plugin-Bereich.

Shortcodes

Auch Shortcodes wie [team-slider] oder [kontaktformular] sollten nicht im Theme definiert werden. Sie ermöglichen wiederverwendbare Funktionalitäten – und diese sollten nicht vom Design abhängig sein. Ein Theme-Wechsel würde ansonsten zu fehlerhaften Seiten führen, weil der Shortcode nicht mehr aufgelöst werden kann.

Erstelle ein eigenes Plugin oder nutze bestehende Lösungen wie Shortcodes Ultimate, um die Funktionalität langfristig verfügbar zu machen.

SEO-Optimierungen und strukturelle Daten

Suchmaschinenoptimierung ist keine Designfrage. Ob Meta-Tags, Schema.org-Markup oder Open Graph-Tags – all diese Dinge gehören in ein SEO-Plugin wie Yoast SEO oder Rank Math. Themes sollten keine eigene Logik für Titles, Descriptions oder Canonical Tags enthalten.

Selbst wenn du ein minimalistisches Theme verwendest, solltest du SEO-relevante Funktionen immer strikt von der Darstellung trennen, um konsistente Rankings und einfache Wartung zu gewährleisten.

Sicherheitsfunktionen und Redirects

Security gehört in die Server- oder Plugin-Ebene – niemals ins Theme. Funktionen wie das Deaktivieren von XML-RPC, das Entfernen von Header-Metadaten oder 301-Redirects sollten über spezialisierte Plugins wie WP Cerber oder Redirection gesteuert werden.

Ein Theme sollte sich auf Benutzerführung und Layout beschränken, nicht auf sicherheitsrelevante Operationen. Auch hier gilt: Sobald Funktionen ins Theme wandern, sind sie nicht mehr update- oder wartungssicher.

Benutzerdefinierte Beitragstypen (Custom Post Types)

Custom Post Types (CPTs) erweitern WordPress um eigene Inhaltstypen wie „Portfolio“, „Events“ oder „Testimonials“. Obwohl sie essenziell für viele Projekte sind, haben sie im Theme selbst nichts verloren. Der Grund: CPTs definieren die strukturelle Architektur der Inhalte – und diese sollte unabhängig vom visuellen Erscheinungsbild funktionieren.

Wird ein CPT im Theme registriert, verschwinden alle entsprechenden Inhalte, sobald du das Theme wechselst. Sie sind zwar noch in der Datenbank vorhanden, aber WordPress weiß ohne die Registrierung nicht mehr, wie es sie laden soll. Das birgt nicht nur technische Risiken, sondern verstößt auch gegen die Grundprinzipien einer sauberen Trennung von Logik und Präsentation.

Die richtige Lösung ist, CPTs in ein eigenes Plugin auszulagern – idealerweise ein Must-Use-Plugin oder ein projektspezifisches Funktionsplugin. Auch Frameworks wie GenerateWP oder CPT Generator können dabei helfen, sauberen Code zu erzeugen.

Entscheidend ist: Themes sollten keine inhaltliche Logik definieren. Sobald ein Inhaltstyp über mehrere Website-Versionen hinweg Bestand haben soll, gehört er in ein Plugin. Nur so bleibt das Backend flexibel und die Inhalte dauerhaft verfügbar – unabhängig vom Design.

Custom Fields und Metaboxes

Benutzerdefinierte Felder (Custom Fields) und Metaboxes sind essenziell, wenn du WordPress-Inhalte strukturieren oder anpassen möchtest – etwa für spezielle Dateneingaben im Backend. Aber: Sie gehören nicht ins Theme. Der Grund ist einfach. Diese Funktionalität ist inhaltlich – nicht visuell. Wird das Theme gewechselt, gehen die Felder und deren Logik verloren. Das ist nicht nur unpraktisch, sondern kann Daten unbrauchbar machen.

Custom Fields definieren zusätzliche Informationen zu einem Beitrag oder CPT, etwa Veranstaltungsdatum, Preis oder externe URL. Metaboxes sind die Benutzeroberfläche, um diese Daten im Editor anzuzeigen. Diese Logik ist unabhängig vom Design des Frontends und sollte deshalb entkoppelt vom Theme entwickelt werden.

Dein Theme sollte nur darstellen, was ein Plugin bereitstellt. Nutzt du beispielsweise Advanced Custom Fields (ACF) oder MetaBox, lässt sich die Struktur sauber an ein Plugin binden. So bleibt die Funktionalität auch bei einem Theme-Wechsel erhalten.

Ein häufiger Fehler ist es, Metabox-Definitionen direkt in der functions.php des Themes zu registrieren. Dadurch wird deine Website unnötig abhängig vom Theme-Code. Besser: Auslagern in ein sogenanntes Must-Use Plugin (mu-plugin) oder ein dediziertes Funktions-Plugin.

Wenn du mehr darüber wissen willst, wie du Code sauber trennst, hilft dir unser Beitrag zu WordPress Child Themes vs. Code Snippets.

Shortcodes

Shortcodes bieten eine einfache Möglichkeit, dynamische Inhalte per Kurzbefehl in WordPress-Seiten oder Beiträgen einzubetten. Häufig werden sie genutzt, um Galerien, Buttons, Formulare oder andere visuelle Komponenten einzufügen. So praktisch sie sind – Shortcodes haben im Theme nichts zu suchen.

Der Hauptgrund: Shortcodes dienen der Inhaltsstrukturierung und -darstellung im Editor, nicht der visuellen Darstellung auf Template-Ebene. Sie gehören funktional zur Content-Ebene und nicht zur Layout-Ebene. Wenn du einen Shortcode ins Theme integrierst, bindest du die Funktionalität an das Design. Wechselt der Nutzer später zu einem anderen Theme, verschwinden alle Shortcodes – oder schlimmer: sie zeigen nur noch rohen Text wie [mein_shortcode] an.

Ein weiterer Nachteil: Shortcodes im Theme erschweren die Wiederverwendbarkeit. In Plugins ausgelagerte Shortcodes lassen sich unabhängig vom Theme aktualisieren, warten und versionieren. Das fördert klare Zuständigkeiten und vermeidet Funktions-Duplikate in verschiedenen Projekten.

Wenn du regelmäßig Shortcodes einsetzt oder komplexere Elemente wie Tabs, Accordions oder Grid-Darstellungen brauchst, solltest du ein eigenes Plugin entwickeln oder auf etablierte Lösungen wie Shortcodes Ultimate zurückgreifen.

Behalte im Hinterkopf: Shortcodes sind inhaltliche Werkzeuge – ihr Platz ist im Plugin-Verzeichnis, nicht im Theme-Ordner.

SEO-Optimierungen und strukturelle Daten

SEO gehört zu den zentralsten Aspekten jeder Website – aber nicht in dein Theme. Viele Entwickler begehen den Fehler, Titles, Meta Descriptions oder sogar strukturierte Daten direkt im Theme zu hardcoden. Das führt langfristig zu massiven Nachteilen: Bei einem Theme-Wechsel verlierst du sämtliche Optimierungen oder musst sie mühsam migrieren. Das widerspricht direkt dem Prinzip der Trennung von Design und Funktionalität.

Auch strukturierte Daten – etwa JSON-LD-Markup für Article, Product oder BreadcrumbList – sollten nicht im Theme-Template eingebettet werden. Diese Daten sind für Suchmaschinen gedacht, nicht für das visuelle Erscheinungsbild der Seite. Ihre Pflege und Ausgabe gehören in die Hände eines spezialisierten SEO-Plugins oder eines dedizierten Custom-Plugins.

Ein weiteres Problem: Themes, die SEO-Funktionalitäten mitbringen, konkurrieren oft mit etablierten Plugins wie Yoast SEO oder Rank Math. Das führt zu doppelten Meta-Tags, fehlerhaftem Canonical-Handling oder Konflikten bei Open-Graph-Daten.

Eine saubere Lösung ist:

  • Verzichte im Theme vollständig auf SEO-bezogene Funktionen.
  • Nutze etablierte SEO-Plugins, die aktuelle Best Practices abbilden und regelmäßig gepflegt werden.
  • Falls du spezielle Anforderungen hast, erstelle ein eigenes Plugin – zum Beispiel für individuelle strukturierte Daten, die dein SEO-Plugin nicht abdeckt.

Mit dieser Herangehensweise bleibt dein Theme schlank, austauschbar und zukunftssicher – ohne SEO-relevante Daten zu verlieren.

Sicherheitsfunktionen und Redirects

Ein weit verbreiteter Fehler in der Theme-Entwicklung ist die Integration von Sicherheitsmechanismen und Weiterleitungen direkt in das Theme. Auch wenn es auf den ersten Blick praktisch erscheint, hat diese Praxis erhebliche Nachteile in Bezug auf Portabilität, Wartbarkeit und Best Practices.

Sicherheitsfunktionen wie das Blockieren von IP-Adressen, das Deaktivieren bestimmter Scripts oder das Erzwingen von HTTPS sollten niemals im Theme untergebracht werden. Sie betreffen die gesamte WordPress-Installation und sind unabhängig vom Design oder der Darstellung der Seite. Ebenso sollten Weiterleitungen – etwa von HTTP auf HTTPS oder von alten URLs auf neue Permalinks – nicht im Theme, sondern serverseitig oder über spezialisierte Plugins abgewickelt werden.

Warum gehören Sicherheitsfunktionen nicht ins Theme?

  • Trennung von Zuständigkeiten: Sicherheit ist eine systemweite Verantwortung, kein Bestandteil des Designs.
  • Wechselproblematik: Beim Theme-Wechsel gehen sicherheitsrelevante Funktionen verloren – mit potenziell gravierenden Folgen.
  • Fehlende Flexibilität: Themes sind nicht dafür gemacht, serverseitiges Verhalten effizient zu steuern oder zu protokollieren.

Redirects als Performance- und SEO-Falle

Redirects beeinflussen sowohl die Nutzererfahrung als auch das Crawling-Verhalten von Suchmaschinen. Implementierst du Weiterleitungen im Theme, können sie beim Theme-Wechsel fehlschlagen oder sogar zu Endlosschleifen führen. Das führt nicht nur zu Ranking-Verlusten, sondern gefährdet auch die Indexierung deiner Inhalte.

Die bessere Lösung: Nutze etablierte Plugins wie Redirection oder setze Weiterleitungen serverseitig über die .htaccess-Datei (Apache) oder nginx.conf (Nginx) um. Auch Sicherheitsfunktionen gehören in Plugins wie Wordfence oder iThemes Security.

Wenn du dich fragst, wo du solche Funktionen stattdessen sauber unterbringen kannst, lies weiter im nächsten Abschnitt über Plugins vs. Frameworks.

Wo diese Funktionen hingehören: Plugins vs. Frameworks

Statt Funktionalitäten direkt im Theme zu implementieren, solltest du sie sauber kapseln – und zwar dort, wo sie hingehören: in Plugins oder in ein übergreifendes Framework. So bleibt deine Website modular, update-sicher und langfristig wartbar.

Plugins: Die bevorzugte Lösung für Funktionalität

Plugins sind der richtige Ort für alles, was themenunabhängig funktionieren soll – und das gilt für die meisten Funktionen, die oft fälschlich ins Theme wandern. Ob benutzerdefinierte Beitragstypen, Shortcodes oder strukturierte Daten – all das gehört in ein Plugin. Damit bleiben diese Features erhalten, auch wenn du das Theme wechselst – was bei einem Redesign oder einer technischen Umstellung fast immer der Fall ist.

Du kannst entweder auf bewährte Plugins zurückgreifen (z. B. Custom Post Type UI, Advanced Custom Fields) oder ein Must-Use-Plugin (MU-Plugin) schreiben, um eigene Funktionalitäten fest zu integrieren. Letzteres ist besonders sinnvoll für projektbezogene Logik, die zentral verwaltet werden soll.

Frameworks: Strukturierte Basis für komplexere Projekte

Für größere Webseiten oder wiederverwendbare Implementierungen lohnt sich der Einsatz eines Theme-Frameworks oder eines Custom Plugin Frameworks. Diese bieten eine strukturierte Architektur, trennen klar zwischen Präsentation und Funktion und fördern die Wiederverwendbarkeit von Code. Beispiele sind Genesis Framework oder eigene modulare Plugin-Architekturen.

Ein Framework kann z. B. ein zentrales Optionspanel, wiederkehrende Blöcke oder eigene REST-API-Endpunkte beinhalten – Dinge, die sich themenübergreifend nutzen lassen. Wichtig ist: Auch hier gilt Trennung von Design und Funktion. Das Framework liefert die Logik, das Theme die Darstellung.

Fazit dieses Abschnitts

Was funktional ist, gehört in ein Plugin oder Framework – nicht ins Theme. Plugins sorgen für Portabilität und Updatesicherheit, Frameworks für Wartbarkeit und Skalierbarkeit. Wenn du Funktion und Präsentation sauber trennst, investierst du in die Zukunftssicherheit deines Projekts.

Fazit / Best Practices für Theme-Entwicklung

Ein sauberes WordPress-Theme trennt Design strikt von Funktionalität. Damit stellst du sicher, dass Inhalte und wichtige Funktionen auch beim Theme-Wechsel erhalten bleiben – ohne Datenverlust oder Funktionsausfälle. Diese Trennung ist nicht nur ein Gebot der Wartbarkeit, sondern auch ein entscheidender Faktor für Performance, Skalierbarkeit und Zukunftssicherheit deiner Projekte.

Halte Themes schlank und zuständig für Präsentation

Ein Theme sollte sich ausschließlich um Layout, Struktur und Styles kümmern. Gestalte Templates, integriere Theme-spezifische Blöcke und definiere Layout-Logiken – aber vermeide jede Art von Logik, die nicht zum visuellen Output gehört.

Vermeide insbesondere:

  • Registrierung von Custom Post Types oder Taxonomien
  • Einbindung von SEO-Metadaten oder strukturierten Daten
  • Sicherheitsmechanismen wie Login-Limits, Redirects oder CAPTCHA
  • Globale Shortcodes oder Block-Registrierungen

Verlagere Funktionalität in Plugins oder zentrales Site-Plugin

Wenn du wiederverwendbare oder nicht-designrelevante Funktionen implementierst, erstelle dafür ein individuelles Plugin oder nutze bewährte Frameworks wie WordPress Plugin API, WPackagist oder moderne Toolkits wie Advanced Custom Fields.

Ein sogenanntes „Must-Use Plugin“ (MU-Plugin) kann sich ebenfalls lohnen, um zentrales Verhalten unabhängig vom Theme zu kapseln – etwa benutzerdefinierte Beitragstypen, Custom Queries oder sinnvolle REST-API-Erweiterungen.

Arbeite mit Child-Themes für individuelle Anpassungen

Wenn du ein bestehendes Theme erweitern willst, ohne die Updatefähigkeit zu gefährden, nutze ein Child-Theme. Damit kannst du Styles, Templates und Funktionen gezielt überschreiben, ohne die logische Struktur eines gut gepflegten Parent-Themes zu beschädigen. Mehr dazu findest du in unserem Beitrag Child-Theme vs. Code-Snippets.

Vermeide Vendor-Lock-in durch klare Architektur

Themes, die essenzielle Funktionen enthalten, binden Seitenbetreiber ungewollt an eine bestimmte Designstruktur. Ein sauberer Code-Aufbau mit klarer Trennung verhindert genau das. So kannst du Themes wechseln, ohne dein gesamtes Frontend-Konzept oder deine Inhalte zu verlieren.

Fazit in Kürze

Funktion gehört ins Plugin, Design ins Theme. Diese Grundregel macht deine WordPress-Projekte nachhaltiger, sicherer und wartbarer – sowohl für dich als Entwickler als auch für Kunden, Admins und Redakteure.

Das könnte dich auch interessieren

Tim Ehling

Tim Ehling

WordPress & SEO-Experte

Technisches SEO, Wartung, Barrierefreiheit, Hilfe, Schulungen

Seit 2006 mit WordPress unterwegs. Ich mache komplexe WP-Themen greifbar, sichere Websites ab und optimiere Performance & SEO – pragmatisch statt Agentur-Blabla.

Alle Beiträge von Tim Ehling ansehen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert