5
(66)

WordPress Plugin selbst erstellen – Der ultimative Leitfaden

WordPress Plugin erstellen – mein Schritt-für-Schritt-Leitfaden für dich

Mittlerweile gibt es über 59.000 kostenlose Plugins für WordPress. Allerdings kann es auch sein, dass du mal eine ganz spezielle Funktion oder eben ein ganz spezielles Plugin brauchst. Dann hast du dich sicher schon mit dem Thema WordPress Plugin programmieren beschäftigt.

Ich erinnere mich noch genau an das erste Mal, als ich selbst ein Plugin für WordPress programmieren wollte.

Da saß ich vor dem Editor, voller Ideen – aber auch mit einigen Fragezeichen.

Wo fängt man an?

Was braucht man?

Und, ganz ehrlich, wie bekomme ich etwas Funktionierendes hin, das keine Fehler produziert?

Falls du dich gerade in einer ähnlichen Situation befindest: Keine Sorge!

Ich begleite dich in diesem Artikel Schritt für Schritt dabei, ein eigenes WordPress Plugin zu erstellen – ganz ohne Chaos oder Frust.

WordPress Plugins sind wesentlich einfacher umzusetzen, als sie auf den ersten Blick wirken.

Du brauchst die richtigen Werkzeuge, ein wenig Basiswissen und einen Plan.

Und genau das bekommst du hier.

Was ich dir zeige

Ich teile hier genau die Schritte, die ich selbst nutze, um Plugins zu schreiben. Du lernst:

  • Die Basics: Was ein Plugin eigentlich ist und wie es funktioniert.
  • Wie du ein eigenes Plugin programmiersr – von der Grundstruktur bis zur ersten Funktion, die du testen kannst.
  • Wie du ein eigenes WordPress Kontaktformular Plugin erstellt
  • Was du sonst noch beachten musst, wenn du ein Wordpress Plugin erstellst

Das Ziel ist, dass du am Ende nicht nur stolzer Besitzer deines eigenen Plugins bist, sondern auch verstehst, wie alles funktioniert und wie du es weiterentwickeln kannst.

Übrigens: Programmieranfänger und alle, die es erst gar nicht richtig lernen wollen: Mittlerweile kannst du auch einfach die Künstliche Intelligenz für dich ein WordPress Plugin erstellen lassen.

Los geht’s – hol dir einen ☕ Kaffee, öffne deinen Editor und lass uns deine Website upgraden!

Was ist ein WordPress-Plugin?

Während WordPress Themes (eigentlich) das Aussehen deiner Website prägen bringen Plugins mehr Funktionalität in deine WordPress Website.

Technisch gesehen ist ein Plugin eine Bündel von PHP-Dateien (meist mit CSS Dateien, JavaScript oder andere Ressourcen), die auf Anforderungen reagieren.

Manche Plugins scheinen fast unsichtbar zu wirken – sie optimieren etwa die Geschwindigkeit deiner Website oder verbessern die Sicherheit –, während andere richtig fette Features wie E-Commerce-Shops, Mitgliederbereiche oder SEO-Optimierungen an Bord haben.

Der Clou: Plugins erweitern WordPress, ohne den Core, also die Grundstruktur von WordPress, zu verändern.

Das bedeutet, dass du Updates einspielen kannst, ohne dir Sorgen machen zu müssen, dass deine Funktionen kaputtgehen oder verloren gehen.

Du kannst Plugins natürlich auch aktivieren, deaktivieren oder entfernen, ganz nach deinem Bedarf.

Es ist, als würdest du neue Werkzeuge für die bestimmte Aufgaben in den Werkzeugkasten deiner Website legen – immer verfügbar, immer modular.

Kurzes Beispiel gefällig? Stell dir vor, du möchtest auf deiner Website ein Kontaktformular haben.

Die steinzeitmäßige Lösung wäre natürlich mit HTML & PHP in den Code deines WordPress Themes zu programmieren.

Aber warum den mühsamen Weg gehen, wenn es Plugins wie Contact Form 7 gibt, die genau das mit ein paar Klicks erledigen – ohne je eine einzige Codezeile anzufassen?

Das ist genau die Stärke von Plugins: Sie machen Funktionen für Nicht-Nerds verfügbar.

Genau deshalb ist WordPress auch so beliebt. Zudem kann jeder durch das Open-Source Modell von WordPress Plugins entwickeln und für andere bereitstellen.

Warum sind Plugins essenziell für WordPress?

Warum gibt es überhaupt WordPress Plugins? Die Antwort ist easy: Flexibilität.

Nicht jede Website auf der Welt ist gleich – logisch.

Ein Food-Blog braucht andere Features als ein Online-Shop oder eine Unternehmensseite.

Daher hat WordPress von Anfang an ein System geschaffen, das individuell angepasst werden kann.

Plugins sind die Brücke zwischen WordPress-Standard und Wunschtraum.

Hier ein paar Gründe, warum sie richtig Sinn machen – selbst, wenn du bisher keine große Website betreibst:

  • Anpassung ohne Risiko
    Plugins geben dir die Freiheit, deine Website zu individualisieren, ohne in die „Core“-Dateien von WordPress eingreifen zu müssen. Das sorgt dafür, dass du stets sauber und updatefähig bleibst.
  • Kaum Grenzen
    Von Social-Media-Automatisierung bis hin zu künstlicher Intelligenz – Plugins können kleine und große Lösungen bieten. Es gibt fast nichts, was technisch nicht realisierbar wäre.
  • Skalierbarkeit für alle
    Ganz gleich, ob du heute mit einer kleinen Seite startest oder morgen ein internationales Unternehmen betreibst: Plugins passen sich dem Fortschritt an.

Und das Beste daran? Du kannst Plugins einfach per Mausklick installieren und aktivieren. Wenn es also ein Feature gibt, das dir fehlt, suchst du nach einem Plugin, installierst es – und schon läuft es. Es fühlt sich fast so an, als würdest du deiner Seite Schalter hinzufügen, die Funktionen auf Abruf aktivieren.

Vorteile eines benutzerdefinierten Plugins

Doch halt – es gibt eine Kehrseite zu dieser Flexibilität. Trotz der riesigen Anzahl verfügbarer Plugins wirst du irgendwann feststellen: Nicht jede Lösung passt zu deinen spezifischen Anforderungen.

Vielleicht willst du Funktionen, die kein Plugin-Katalog hergibt. Oder die einzigen geeigneten Plugins sind so aufgeblasen, dass verschiedenste Funktionen eingebaut sind, die du gar nicht brauchst – was deine Website langsamer macht. Hier kommt die Magie eines eigenen Plugins ins Spiel.

Warum also ein eigenes Plugin erstellen?

  1. Du behältst die volle Kontrolle.
    Du brauchst nur das, was du wirklich verwenden willst – keine Zusatzfeatures, kein Ballast. Alles, was das Plugin tut, entscheidest du selbst. Das Ergebnis ist eine schlankere Website.
  2. Die perfekte Erweiterbarkeit.
    Ein eigenes Plugin ist modular und flexibel. Du kannst es ohne weiteres erweitern oder anpassen, ohne dich mit den Beschränkungen eines externen Plugins herumzuärgern.
  3. Unabhängigkeit.
    Plugins von Drittanbietern können irgendwann nicht mehr gepflegt werden oder Kompatibilitätsprobleme mit neuen WordPress-Versionen bekommen. Mit einem eigenen Plugin gehst du kein solches Risiko ein.
  4. Dein Business, dein Branding.
    Ein individuelles Plugin kann spezifisch auf dein Business zugeschnitten sein – oder sogar so entwickelt werden, dass du es weiterverkaufen kannst. Es wird zu deiner digitalen Handschrift.

Ein Beispiel: Nehmen wir an, du betreibst eine Mitglieder-Community, die jede Woche per E-Mail aktuelle Updates erhält. Natürlich kannst du bestehende Newsletter-Plugins nutzen. Aber vielleicht möchtest du deinen eigenen „Benachrichtigungsfluss“ aufbauen, der nicht nur Mails schickt, sondern auch Push-Benachrichtigungen auslöst und Analyseberichte erstellt. In diesem Fall schreibst du einfach ein eigenes Plugin, das genau deine Anforderungen berücksichtigt.

Grundlagen von WordPress-Plugins

Technische Definition eines Plugins

Ein WordPress-Plugin ist eine Erweiterung für deine Website. Es besteht aus Code – meist in PHP geschrieben –, der Funktionen zu deiner WordPress-Seite hinzufügt oder das Verhalten von vorhandenen Features verändert. Plugins sind dabei wie Bausteine, die du deiner Website hinzufügen kannst, ohne den Kern von WordPress zu verändern.

Das Beste daran: Ein Plugin kann einfach ein- und ausgeschaltet werden. Wenn du es deaktivierst, werden seine Funktionen nicht mehr geladen, und WordPress funktioniert weiter wie zuvor.

Damit WordPress ein Plugin erkennt, muss es an einem ganz bestimmten Ort abgelegt sein: im Verzeichnis wp-content/plugins/. Dort kannst du eine Datei hinzufügen, die dein Plugin enthält. Diese Datei muss einige grundlegende Informationen haben, wie z. B. den Namen des Plugins und eine kurze Beschreibung.

Die Hauptdatei eines Plugins

Die wichtigste Datei in einem Plugin ist die sogenannte Hauptdatei.

Die Plugin-Hauptdatei ist das Herzstück des Plugins und enthält alle grundlegenden Informationen, die WordPress benötigt, um das Plugin zu identifizieren.

Diese Datei beginnt immer mit einem Kommentarblock (auch „Plugin-Header“ genannt), der so aussehen könnte:

<?php
/*
Plugin Name: Mein Erstes Plugin
Description: Ein einfaches Plugin, das eine Funktion hinzufügt.
Version: 1.0
Author: Dein Name
*/
Dieser Header-Block sagt WordPress: „Hey, hier ist ein Plugin! So heißt es, und das ist, was es tut.“ Sobald du diese Datei in das Plugin-Verzeichnis hochlädst, kannst du das Plugin im WordPress-Backend unter „Plugins“ sehen und aktivieren.

Wie funktioniert ein Plugin technisch?

Ein Plugin arbeitet Hand in Hand mit dem WordPress-System. Es „hängt“ sich an bestimmte Prozesse an, die während des Betriebs von WordPress ablaufen. Dafür nutzt es sogenannte Hooks.

Hooks sind wie Schnittstellen zwischen WordPress und deinem Plugin. Sie geben dir die Möglichkeit, zu bestimmten Zeitpunkten eigene Funktionen auszuführen oder bestehende Daten zu verändern. Man unterscheidet zwischen:

  • Aktionen (Action Hooks): Damit kannst du Funktionen ausführen, z. B. wenn ein Beitrag veröffentlicht wird.
  • Filtern (Filter Hooks): Damit kannst du veränderte Daten zurückgeben, z. B. den Titel eines Beitrags anpassen.

Ein Plugin wird also immer dann aktiv, wenn WordPress auf einen Hook trifft, den das Plugin nutzt. Genau hier kannst du deinen Code hinzufügen, damit er ausgeführt wird.

Ein Beispiel für ein kleines Plugin, das eine benutzerdefinierte Nachricht im Admin-Bereich ausgibt:

add_action('admin_notices', function() {
    echo '<div class="notice notice-success"><p>Mein Erstes Plugin wurde erfolgreich geladen!</p></div>';
});
Sobald das Plugin aktiviert wird, zeigt es diese Nachricht im Admin-Bereich an.

Ein Plugin erstellen: Struktur und Organisation

Auch wenn ein Plugin technisch gesehen aus nur einer Datei bestehen kann, empfiehlt es sich, größere Plugins gut zu organisieren.

Ein einfaches Plugin könnte nur so aussehen:

wp-content/
└── plugins/
    └── mein-plugin.php
Hier wird alles in einer einzigen Datei abgelegt. Dies eignet sich für kleinere Projekte oder einfache Anpassungen.

Ein komplexes Plugin hingegen hat oft eine klar strukturierte Ordnerhierarchie. Diese dient dazu, dass Plugin besser zu warten und auch bei großen WordPress Plugins den Überblick zu behalten. Meist sind dann Funktionen und Code thematisch auf mehrere Dateien aufgeteilt:

mein-plugin/
├── mein-plugin.php         # Hauptdatei
├── includes/
│   └── helper-functions.php  # Zusätzlicher Code
├── assets/
│   ├── style.css           # Design-Datei
│   └── script.js           # JavaScript-Datei
Bei größeren Plugins kommen oft CSS- und JavaScript-Dateien zum Einsatz, um z. B. benutzerdefinierte Styles oder interaktive Funktionen hinzuzufügen. Die „Hauptdatei“ bleibt dann der Einstiegspunkt und verlinkt zu den anderen Ordnern, wo speziellere Aufgaben ausgeführt werden.

WordPress lädt dein Plugin: Was passiert im Hintergrund?

Sobald du dein Plugin im Backend aktivierst, passiert Folgendes:

  1. WordPress liest die Header-Informationen aus deiner Hauptdatei – das sind die Angaben wie Name, Version und Beschreibung.
  2. Danach wird der Code in der Hauptdatei ausgeführt. Wenn du dort Funktionen oder Hooks definiert hast, verknüpft WordPress sie mit dem System.
  3. Von diesem Moment an ist dein Plugin aktiv und arbeitet gemeinsam mit WordPress.

Du kannst mit jedem neuen Plugin deiner Website spezielle Funktionen hinzufügen, ohne jemals den Kern von WordPress selbst zu ändern. Das bedeutet: Updates deiner WordPress-Installation sind sicher, und du kannst jederzeit Änderungen vornehmen, ohne die Website zu gefährden.

Struktur eines einfachen vs. komplexen Plugins

Die Art und Weise, wie du dein WordPress-Plugin aufbaust, hängt stark davon ab, was du erreichen willst. Ein einfaches Plugin benötigt oft nur eine einzige PHP-Datei. Wird die Funktionalität jedoch komplizierter – z. B. durch benutzerdefinierte Felder, das Laden von CSS und JavaScript oder eine Admin-Oberfläche –, dann wird eine durchdachte Struktur unverzichtbar. Je besser das Plugin organisiert ist, desto einfacher ist es zu verstehen, zu erweitern und zu warten.

Struktur eines einfachen Plugins

Ein einfaches Plugin besteht meist aus nur einer Datei. Diese Datei enthält:

  • Den Plugin-Header: Meta-Informationen wie Name, Version und Beschreibung über das Plugin.
  • Die gesamte Funktionalität: Alle benötigten Funktionen, Aktionen und Filter befinden sich direkt in dieser Datei.
Beispiel: Aufbau eines einfachen Plugins

Nehmen wir ein Plugin, das im Admin-Dashboard eine Nachricht anzeigt. Das gesamte Plugin könnte aus einer einzigen Datei bestehen, die so abgelegt wird:

wp-content/
└── plugins/
    └── mein-einfaches-plugin.php

Code der Plugin-Datei:


Plugin Name: Einfaches Plugin
Description: Dieses Plugin zeigt eine Nachricht im WordPress-Adminbereich an.
Version: 1.0
Author: Dein Name
*/

// Sicherstellen, dass das Plugin nur innerhalb von WordPress ausgeführt wird.
defined('ABSPATH') or die('Direkter Zugriff nicht erlaubt.');

// Nachricht im Dashboard anzeigen.
add_action('admin_notices', function() {
    echo '<div class="notice notice-success"><p>Das ist eine Nachricht von meinem einfachen Plugin!</p></div>';
});

Vorteile eines einfachen Plugins:

  • Schnelle Umsetzung: Alles, was du brauchst, ist eine einzige Datei. Ideal für kleine, fokussierte Anpassungen.
  • Übersichtlichkeit: Du hast den gesamten Code an einem Ort – leicht verständlich und schnell modifizierbar.

Wann eignet sich ein einfaches Plugin?

Ein solcher Aufbau ist perfekt, wenn deine geplante Funktion klein und überschaubar ist. Beispiele könnten sein:

  • Eine Meldung im Admin-Dashboard.
  • Eine kleine Stiländerung über PHP.
  • Ein einfaches Widget oder einen Shortcode hinzufügen.

Struktur eines komplexeren Plugins

Sobald die Funktionalität deines Plugins umfangreicher wird, lohnt es sich, eine klare und gut strukturierte Ordner- und Datei-Organisation zu schaffen. Dies erleichtert nicht nur die Arbeit, sondern stellt sicher, dass du nicht den Überblick verlierst – vor allem, wenn du mit einem Team arbeitest oder später Erweiterungen hinzufügen willst.

Ein komplexes Plugin enthält in der Regel:

  • Eine Hauptdatei: Die zentrale Datei, die WordPress lädt, sobald das Plugin aktiv ist.
  • Unterordner für zusätzliche Ressourcen: Zum Beispiel für Stylesheets, JavaScript-Dateien, Übersetzungen und Hilfsfunktionen.
  • Separate Dateien für bestimmte Aufgaben: Zum Beispiel zur Definition von benutzerdefinierten Post-Typen oder zur Integration von API-Schnittstellen.
Beispiel: Aufbau eines komplexeren Plugins

Ein Plugin, das eine individuelle Admin-Seite bereitstellt und zusätzliche Styles sowie JavaScript einbindet, könnte so strukturiert sein:

mein-komplexes-plugin/
├── mein-plugin.php         # Hauptdatei
├── admin/
│   └── admin-page.php      # Admin-spezifische Funktionen
├── includes/
│   ├── helper-functions.php # Allgemeine Hilfsfunktionen
│   └── custom-post-types.php # Benutzerdefinierte Post-Typen
├── assets/
│   ├── css/
│   │   └── style.css       # Stylesheet für das Plugin
│   ├── js/
│   │   └── script.js       # JavaScript für das Plugin
│   └── images/
│       └── admin-icon.png  # Logos oder Icons
Die Rolle der Hauptdatei

Die Hauptdatei bleibt die zentrale Instanz des Plugins. Sie gibt WordPress die notwendigen Meta-Informationen und lädt zusätzlich alle anderen benötigten Dateien.

Code der Hauptdatei:


/*
Plugin Name: Komplexes Plugin
Description: Ein Plugin mit eigener Admin-Seite, benutzerdefinierten Funktionen und CSS/JS-Einbindung.
Version: 1.0
Author: Dein Name
*/

// Zugriffsschutz
defined('ABSPATH') or die('Direkter Zugriff nicht erlaubt.');

// CSS- und JavaScript-Dateien einbinden
add_action('admin_enqueue_scripts', function() {
    wp_enqueue_style('mein-plugin-style', plugin_dir_url(__FILE__) . 'assets/css/style.css');
    wp_enqueue_script('mein-plugin-script', plugin_dir_url(__FILE__) . 'assets/js/script.js', ['jquery'], null, true);
});

// Zusätzliche Funktionen laden
require_once plugin_dir_path(__FILE__) . 'admin/admin-page.php';
require_once plugin_dir_path(__FILE__) . 'includes/helper-functions.php';
require_once plugin_dir_path(__FILE__) . 'includes/custom-post-types.php';

Vorteile einer komplexen Struktur:

  • Bessere Lesbarkeit und Wartbarkeit: Funktionen und Ressourcen sind thematisch sortiert.
  • Einfache Erweiterbarkeit: Du kannst problemlos neue Funktionen oder zusätzliche Dateien hinzufügen.
  • Teamarbeit: Bei mehreren Entwicklern weiß jeder sofort, wo er arbeiten muss.

Ein Vergleich: Einfache vs. Komplexe Plugins

Kriterium Einfaches Plugin Komplexes Plugin
Dateien Eine einzige Datei (PHP). Mehrere Dateien und Ordner.
Funktionalität Klein, fokussiert, begrenzt. Umfangreich, vielseitig, erweiterbar.
Einsatzmöglichkeit Schnell lösbare Aufgaben. Großprojekte und wiederverwendbare Module.
Wartbarkeit Gut für kleine Projekte. Optimal für künftige Erweiterungen.

Fazit zur Plugin-Struktur

Die Wahl zwischen einer einfachen oder komplexen Plugin-Struktur hängt ganz davon ab, was du mit deinem Plugin erreichen möchtest.

Ein kleines Plugin, das nur eine begrenzte Aufgabe erfüllt, braucht oft nicht mehr als eine einzige Datei. Doch wenn dein Plugin wächst – sei es durch zusätzliche Ressourcen oder Funktionen –, zahlt sich eine durchdachte Ordnerstruktur aus.

Denke daran: Eine gute Struktur spart dir nicht nur Zeit, sondern macht es auch einfacher, dein Plugin künftig zu erweitern oder anzupassen.

Egal, ob du klein oder groß anfängst – es kommt darauf an, sauber zu arbeiten und flexibel zu bleiben. 😊

WordPress-Hooks: Aktionen und Filter

Wenn du ein WordPress-Plugin erstellen möchtest, kommst du um ein zentrales Konzept nicht herum: die sogenannten Hooks. Sie sind die Schnittstellen, die es deinem Plugin ermöglichen, WordPress anzupassen oder zu erweitern, ohne den WordPress-Core zu verändern. Ganz gleich, ob du eigene Funktionen hinzufügen oder bestehende Inhalte bearbeiten möchtest – Hooks sind der Schlüssel zur Plugin-Entwicklung.

Was sind WordPress-Hooks?

Hooks sind spezielle Punkte im Ablauf von WordPress, an denen du deinen eigenen Code „einhängen“ kannst.

Sie ermöglichen es dir, deine Funktionen auszuführen, sobald ein bestimmtes Ereignis in WordPress eintritt, oder Daten anzupassen, bevor diese an den Browser ausgeliefert werden.

Definition von Hooks und ihre Rolle in der Plugin-Entwicklung

WordPress ist von Grund auf so gestaltet, dass es flexibel erweitert werden kann. Hooks stellen wichtige Verbindungspunkte bereit, mit denen du auf Prozesse innerhalb von WordPress zugreifen kannst. So kannst du beispielsweise deinen eigenen Code ausführen, wenn ein Beitrag veröffentlicht wird, oder den Inhalt eines Blogbeitrags modifizieren, bevor er auf der Website angezeigt wird.

Ohne Hooks würdest du gezwungen sein, direkt in den WordPress-Core-Code einzugreifen – ein riskanter Ansatz, der Probleme bei Updates und der Wartbarkeit deiner Website mit sich bringt. Mit Hooks hingegen bleibt dein Plugin modular, sicher und sauber getrennt vom Rest des Systems.

Hauptarten: Action Hooks und Filter Hooks

Es gibt zwei Haupttypen von Hooks:

  • Action Hooks: Sie führen benutzerdefinierte Funktionen bei bestimmten Ereignissen aus.
  • Filter Hooks: Sie ermöglichen es dir, bestehende Inhalte oder Daten zu verändern.

Im nächsten Abschnitt gehen wir detaillierter auf jeweils eine Kategorie ein.

Action Hooks: Aktionen ausführen

Was sind Action Hooks?

Action Hooks sind ereignisgesteuert. Sie erlauben es dir, deinen eigenen Code auszuführen, wenn eine bestimmte Aktion in WordPress ausgelöst wird. Zum Beispiel könntest du eine Funktion erstellen, die eine E-Mail sendet, wenn ein neuer Beitrag veröffentlicht wird, oder ein Stylesheet laden, bevor die Seite im Browser angezeigt wird.

WordPress selbst definiert eine ganze Reihe von vorgegebenen Action Hooks (z. B. init, wp_footer oder publish_post). Als Entwickler kannst du diese Action Hooks nutzen, um dein Plugin so zu programmieren, dass es bei einem passenden Ereignis aktiv wird.

Funktionen hinzufügen mit add_action()

Um eigene Funktionen zu einem Action Hook hinzuzufügen, verwendest du die Funktion add_action(). Sie benötigt mindestens zwei Parameter: den Namen des Hooks und den Namen der Funktion, die ausgeführt werden soll.

Hier ein Beispiel: Wenn du möchtest, dass eine benutzerdefinierte Nachricht im Admin-Bereich angezeigt wird:

add_action('admin_notices', 'zeige_admin_nachricht');

function zeige_admin_nachricht() {
    echo '&lt;div class="notice notice-success"&gt;&lt;p&gt;Willkommen im Admin-Dashboard!&lt;/p&gt;&lt;/div&gt;';
}

Aktionen entfernen mit remove_action()

Wenn du verhindern möchtest, dass eine bestehende Funktion an einem Action Hook ausgeführt wird, kannst du die Funktion remove_action() verwenden. Dies ist nützlich, um Standardverhalten zu überschreiben oder Features zu deaktivieren, die WordPress von Haus aus anbietet.

Beispiel: Entferne die WordPress-Versionsnummer aus dem Header:

function entferne_wp_generator() {
    remove_action('wp_head', 'wp_generator');
}
add_action('init', 'entferne_wp_generator');

Filter Hooks: Daten manipulieren

Was sind Filter Hooks?

Filter Hooks ermöglichen es dir, bestehende Daten zu verändern. Dies ist nützlich, wenn du z. B. den Titel eines Beitrags anpassen möchtest, bevor er angezeigt wird, oder HTML-Ausgaben modifizieren willst.

Filter Hooks arbeiten immer auf Eingabedaten, modifizieren diese und geben sie anschließend zurück. Mit ihnen kannst du Daten abfangen, bearbeiten und danach weiterverarbeiten lassen.

Daten anpassen mit add_filter()

Um einen Filter Hook zu verwenden, nutzt du die Funktion add_filter(). Ähnlich wie add_action() benötigt sie zwei Parameter: den Hook-Namen und die Funktion, die die Daten manipuliert.

Ein Beispiel: Du möchtest jedem Beitragstitel den Zusatz „- Special Edition“ hinzufügen:

add_filter('the_title', 'passe_titel_an');

function passe_titel_an($titel) {
    return $titel . ' - Special Edition';
}

Filter entfernen mit remove_filter()

Mit remove_filter() kannst du einen Filter deaktivieren. So kannst du verhindern, dass eine Funktion weiter auf den Hook zugreift.

Beispiel: Entferne den oben hinzugefügten Filter:

function entferne_titel_filter() {
    remove_filter('the_title', 'passe_titel_an');
}
add_action('init', 'entferne_titel_filter');

Fazit: Die Bedeutung von Hooks

Hooks sind der Dreh- und Angelpunkt der WordPress-Plugin-Entwicklung. Sie ermöglichen es dir, gezielt eigene Funktionen hinzuzufügen oder bestehende Inhalte zu modifizieren. Mit Action Hooks kannst du neue Aktionen ausführen, und mit Filter Hooks kannst du vorhandene Daten anpassen – alles, ohne den WordPress-Kern zu berühren.

Die Kenntnis und Nutzung von Hooks eröffnet dir fast unbegrenzte Möglichkeiten, deine Website individuell anzupassen. Nutze sie, um das Beste aus deinem WordPress-Plugin herauszuholen!

Wie Plugins mit WordPress interagieren

WordPress bietet zahlreiche APIs, die speziell für die Plugin-Entwicklung geschaffen wurden. Diese Schnittstellen ermöglichen es dir, nahezu jede gewünschte Funktionalität umzusetzen – vom Speichern von Daten bis hin zur Integration externer Systeme. Hier sind alle wichtigen APIs, die dir dabei helfen, leistungsstarke und effiziente Plugins zu entwickeln.

WordPress-APIs für Plugins

Hier findest du eine Übersicht über die wichtigsten APIs und ihre Anwendungsbereiche.

Dashboard Widget API

Mit der Dashboard Widget API kannst du benutzerdefinierte Widgets im Admin-Dashboard von WordPress hinzufügen. So bietest du deinen Nutzern nützliche Informationen wie Statistiken oder Nachrichten direkt nach dem Login.

function mein_dashboard_widget() {
    wp_add_dashboard_widget(
        'mein_widget',
        'Statistiken',
        'mein_widget_inhalt'
    );
}

function mein_widget_inhalt() {
    echo '&lt;p&gt;Hier ist dein Dashboard-Widget. Code anpassen und loslegen!&lt;/p&gt;';
}

add_action('wp_dashboard_setup', 'mein_dashboard_widget');
Options API

Die Options API speichert Konfigurationen und Einstellungen deines Plugins dauerhaft in der WordPress-Datenbank. Diese Methode ist ideal für Daten, die global verfügbar sein müssen, wie z. B. Plugin-Einstellungen oder einfache Konfigurationswerte.

function speichere_option() {
    update_option('plugin_einstellung', 'Wert gespeichert');
}

function abrufe_option() {
    echo 'Gespeicherter Wert: ' . get_option('plugin_einstellung');
}

add_action('init', 'speichere_option');
add_action('init', 'abrufe_option');
Metadata API

Die Metadata API ermöglicht es, benutzerdefinierte Daten zu Beiträgen, Benutzern oder Kommentaren hinzuzufügen oder abzurufen. Du kannst Metadaten verwenden, um zusätzliche Informationen zu Objekten zu speichern, wie z. B. spezifische Einstellungen oder Kategorien.

function speichere_meta($post_id) {
    update_post_meta($post_id, '_meta_key', 'Benutzerdefinierte Metadaten');
}

function abrufe_meta($post_id) {
    $meta_wert = get_post_meta($post_id, '_meta_key', true);
    echo 'Meta-Daten: ' . $meta_wert;
}
HTTP API

Die HTTP API hilft dir, HTTP-Anfragen (z. B. GET oder POST) an externe Server zu senden. Sie wählt automatisch die optimale Verbindungsmethode (Sockets, cURL etc.) für deinen Server aus. Perfekt für API-Integrationen oder das Abrufen von Daten externer Dienste.

function hole_externe_daten() {
    $antwort = wp_remote_get('https://api.example.com/daten');
    if (is_wp_error($antwort)) {
        echo 'Fehler beim Abrufen der Daten.';
    } else {
        $daten = wp_remote_retrieve_body($antwort);
        echo 'Abgerufene Daten: ' . $daten;
    }
}

add_action('init', 'hole_externe_daten');
Settings API

Die Settings API wird oft zusammen mit der Options API verwendet. Sie hilft dir, benutzerdefinierte Einstellungsseiten für dein Plugin zu erstellen. Damit kannst du Benutzer einfacher mit den Funktionen deines Plugins interagieren lassen.

function plugin_einstellungen_seite() {
    add_options_page(
        'Plugin-Einstellungen',
        'Plugin-Einstellungen',
        'manage_options',
        'mein-plugin',
        'anzeige_einstellungen_seite'
    );
}

function anzeige_einstellungen_seite() {
    echo '&lt;form method="post" action="options.php"&gt;';
    settings_fields('plugin_optionen');
    do_settings_sections('mein-plugin');
    submit_button();
    echo '&lt;/form&gt;';
}

add_action('admin_menu', 'plugin_einstellungen_seite');
Shortcode API

Mit der Shortcode API erstellst du benutzerdefinierte Kürzel, die du direkt in Beiträge oder Seiten einfügen kannst. So kannst du Benutzern einfachen Zugriff auf bestimmte Funktionen bieten, ohne dass diese Programmierkenntnisse benötigen.

function mein_shortcode() {
    return '&lt;p&gt;Das ist ein benutzerdefinierter Inhalt, eingefügt über einen Shortcode.&lt;/p&gt;';
}

add_shortcode('mein_shortcode', 'mein_shortcode');
Rewrite API

Die Rewrite API ermöglicht es dir, URLs zu modifizieren. Dies hilft dir, benutzerfreundliche oder suchmaschinenoptimierte Permalinks für benutzerdefinierte Post-Typen oder Seiten zu erstellen.

function benutzerdefinierte_rewrite_regel() {
    add_rewrite_rule(
        '^meine-seite/([0-9]+)/?',
        'index.php?page_id=$matches[1]',
        'top'
    );
}

add_action('init', 'benutzerdefinierte_rewrite_regel');
REST API

Die REST API bietet dir die Möglichkeit, externe Anwendungen mit deiner WordPress-Website zu verbinden. Sie überträgt Daten im JSON-Format und ist unverzichtbar für moderne Webanwendungen.

function rest_endpoint_registrieren() {
    register_rest_route('api/v1', '/daten', array(
        'methods' =&gt; WP_REST_Server::READABLE,
        'callback' =&gt; 'rest_daten_abrufen',
    ));
}

function rest_daten_abrufen() {
    return array('status' =&gt; 'Daten erfolgreich geladen');
}

add_action('rest_api_init', 'rest_endpoint_registrieren');
Widgets API

Mit der Widgets API erstellst du benutzerdefinierte Widgets, die Nutzer einfach per Drag-and-Drop in andere Bereiche ziehen können. Beispielsweise kannst du ein Widget für eine spezielle Produktanzeige oder einen Newsletter-Block integrieren.

class Mein_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct('mein_widget', 'Benutzerdefiniertes Widget');
    }

    public function widget($args, $instance) {
        echo $args['before_widget'];
        echo '&lt;p&gt;Mein benutzerdefiniertes Widget!&lt;/p&gt;';
        echo $args['after_widget'];
    }
}

function registriere_widget() {
    register_widget('Mein_Widget');
}

add_action('widgets_init', 'registriere_widget');

Fazit

Die APIs von WordPress bieten dir viel Freiheit, Plugins zu erstellen, die genau das tun, was du brauchst.

Erstelle benutzerdefinierte Dashboards, speichere Daten oder verknüpfe externe Systeme – die Möglichkeiten sind nahezu unbegrenzt.

Egal, ob du Daten von Nutzern abrufst oder Funktionen über Shortcodes bereitstellst: Mit den entsprechenden APIs meisterst du jede Herausforderung.

Nutze diese leistungsstarken Werkzeuge und entwickle WordPress Plugins, die begeistern!

Arten von WordPress-Plugins

WordPress bietet dir verschiedene Arten von Plugins, die sich nach ihrer Funktionalität und ihrem Einfluss auf das System unterscheiden.

Egal, ob du einfache Erweiterungen für eine Website oder systemweite Änderungen implementierst – es gibt die passende Lösung.

Hier sind die drei Hauptarten von WordPress-Plugins:

  • Normale Plugins
  • Must-Use-Plugins (MU-Plugins)
  • Drop-In-Plugins

Normale Plugins

Normale Plugins sind die gängigste Art von WordPress-Plugins. Du lädst sie in das Verzeichnis 📁 wp-content/plugins hoch und kannst sie bequem über das WordPress-Backend verwalten. Sie sind die beste Wahl, wenn du flexible Funktionen hinzufügen möchtest, die der Website-Administrator bei Bedarf aktivieren oder deaktivieren kann.

Vorteile von normalen Plugins:

  • Einfache Installation und Verwaltung über das Backend.
  • Kein technisches Wissen notwendig, um sie zu aktivieren oder zu deaktivieren.
  • Sicher für Updates, da sie unabhängig vom Core arbeiten.

Wann solltest du normale Plugins verwenden?

Du solltest normale Plugins nutzen, wenn du zusätzliche Features wie Kontaktformulare, SEO-Optimierungen oder Social-Media-Integrationen installieren möchtest. Sie sind ideal für Anpassungen, die der Nutzer bei Bedarf ein- und ausschalten kann.

Must-Use-Plugins (MU-Plugins)

Must-Use-Plugins, auch MU-Plugins genannt, werden in einem speziellen Verzeichnis unter 📁 wp-content/mu-plugins abgelegt. Sie sind immer aktiv und können nicht über das WordPress-Backend deaktiviert werden. MU-Plugins eignen sich daher perfekt für Funktionen oder Sicherheitsmaßnahmen, die für eine Website zwingend erforderlich sind.

Im Gegensatz zu normalen Plugins werden MU-Plugins direkt beim Laden von WordPress ausgeführt, was ihre Effizienz steigert.

So verwendest du MU-Plugins:

  1. Erstelle einen Ordner mit dem Namen mu-plugins im Verzeichnis wp-content, falls er nicht vorhanden ist.
  2. Lege die Plugin-Dateien direkt in dieses Verzeichnis. Unterordner werden nicht unterstützt.

Vorteile von MU-Plugins:

  • Immer aktiv und unveränderlich durch Benutzer – ideal für Sicherheits- und Systemlösungen.
  • Werden früher geladen als normale Plugins, was sie für grundlegende Funktionen geeignet macht.

Wann solltest du MU-Plugins verwenden?

Nutze MU-Plugins für essentielle Features wie Performance-Optimierungen, Sicherheitsprotokolle oder Multisite-spezifische Anpassungen, die immer ausgeführt werden müssen und nicht versehentlich deaktiviert werden sollen.

Drop-In-Plugins

Drop-In-Plugins sind eine spezielle Form von Plugins, die bestimmte Kernfunktionen von WordPress überschreiben. Sie werden in das Verzeichnis 📁 wp-content geladen und stehen sofort als Systemerweiterungen zur Verfügung. Drop-In-Plugins ermöglichen tiefe Änderungen wie die Anpassung der Datenbankverbindung oder die Implementierung eines alternativen Caching-Systems.

Typischerweise erstellst du Drop-In-Plugins, indem du bestimmte Dateien mit festen Dateinamen in das Verzeichnis wp-content legst. Beispiele für diese Dateinamen sind:

  • object-cache.php – Definiert einen benutzerdefinierten Object Cache.
  • db.php – Ersetzt die Standard-Datenbankklasse.
  • advanced-cache.php – Optimiert oder ersetzt die Cache-Mechanismen von WordPress.

Vorteile von Drop-In-Plugins:

  • Ermöglichen weitreichende Änderungen am System.
  • Perfekt für Caching, spezifische Fehlerseiten oder Datenbankoptimierungen.

Wann solltest du Drop-In-Plugins verwenden?

Du solltest Drop-In-Plugins nutzen, wenn du systemweite Anpassungen benötigst, z. B. zum Einrichten eines Redis-Caches oder zur Implementierung einer alternativen Datenbanklösung. Drop-In-Plugins bieten maximale Kontrolle, sollten jedoch mit Vorsicht eingesetzt werden.

Fazit

Normale Plugins, MU-Plugins und Drop-In-Plugins haben jeweils ihre spezifischen Anwendungsfälle. Normale Plugins bieten dir Flexibilität und einfache Verwaltung, während Must-Use-Plugins ideal für essenzielle und unveränderliche Funktionen sind. Drop-In-Plugins erlauben tiefgreifende Änderungen und bieten dir maximale Kontrolle über das System. Wähle die passende Plugin-Art für dein Projekt, um das Beste aus deiner WordPress-Website herauszuholen.

WordPress Plugin erstellen – so geht’s!

Du möchtest ein eigenes WordPress-Plugin erstellen? Gute Entscheidung! Plugins sind der beste Weg, um die Funktionalität von WordPress zu erweitern, ohne den Core anzupassen. In diesem Abschnitt zeige ich dir Schritt für Schritt, wie du mit deinem ersten Plugin starten kannst. Von den Vorbereitungen bis zur ersten Funktion: Los geht’s!

Vorbereitungen

Bevor du loslegst, stelle sicher, dass du die richtige Umgebung für die Plugin-Entwicklung hast. Hier ist, was du benötigst:

  • Ein funktionierendes WordPress: Teste dein Plugin auf einer lokalen oder Entwicklungsseite, bevor du es auf einer Live-Seite einsetzt.
  • Texteditor: Verwende einen Code-Editor wie Visual Studio Code, Sublime Text oder Notepad++.
  • Grundlegende PHP-Kenntnisse: Plugins werden hauptsächlich in PHP geschrieben. Du solltest wissen, wie Funktionen, Variablen und Kontrollstrukturen in PHP funktionieren.
  • FTP-Zugang oder Dateizugriff: Um die Plugin-Dateien hochzuladen, benötigst du Zugriff auf das Verzeichnis 📁wp-content/plugins.

Hast du alles bereit? Dann geht es weiter mit der Architektur deines Plugins.

Grundlegende Plugin-Architektur

Jedes Plugin benötigt eine bestimmte Struktur. Du möchtest jetzt kein Chaos schaffen, daher lernst du hier die Grundbasis:

Einen Plugin-Ordner erstellen

Öffne den Ordner 📁wp-content/plugins in deiner WordPress-Installation. Erstelle darin einen neuen Ordner für dein Plugin. Wichtig: Wähle einen aussagekräftigen Namen, z. B. 📁 mein-plugin. So sieht das Verzeichnis aus:


wp-content/
└── plugins/
    └── mein-plugin/

Dieser Ordner wird alle Dateien deines Plugins enthalten. Denke an gute Organisation, wenn dein Plugin wächst.

Die Hauptdatei des Plugins

Jedes WordPress-Plugin benötigt eine Hauptdatei, die WordPress sagt: „Hey, hier ist ein Plugin, lade mich!“.

Erstellt dazu eine neue PHP-Datei und speichert sie im Plugin-Ordner ab.

Benenne die Datei genauso wie dein Plugin-Ordner, z. B. mein-plugin.php.

Jetzt fügst du den sogenannten Plugin-Header hinzu. Er enthält wichtige Informationen über dein Plugin:

&lt;?php
/*
Plugin Name: Mein Plugin
Description: Ein einfaches Plugin für WordPress.
Version: 1.0
Author: Dein Name
*/
?&gt;

Sobald diese Datei im Ordner liegt, wird sie im WordPress-Dashboard unter „Plugins“ angezeigt. Du kannst das Plugin nun aktivieren.

Sicherheitsvorkehrungen

Es ist wichtig, dass dein Plugin keine Fehler oder Sicherheitslücken verursacht. Die erste Sicherheitsmaßnahme: Schütze dein Plugin vor direkten Zugriffen. Ohne diese Schutzmaßnahme könnten Angreifer deine Plugin-Datei außerhalb von WordPress direkt ausführen.

Füge diesen Code sofort unter den Header in deine Hauptdatei ein:

&lt;?php
defined('ABSPATH') or die('Kein Zugriff erlaubt!');
?&gt;

Die ABSPATH-Konstante ist nur definiert, wenn WordPress geladen wurde. Dieser Check verhindert, dass die Datei direkt über die URL aufgerufen wird.

Erste Funktion hinzufügen

Jetzt wird es spannend!

Du möchtest natürlich, dass dein Plugin etwas tut.

Als erstes Beispiel fügen wir eine Funktion hinzu, die eine Nachricht im Admin-Dashboard anzeigt. Damit lernst du, wie Action Hooks funktionieren und wie dein Plugin mit dem WordPress-Flow interagiert.

Beispiel: Nachricht im WordPress-Admin-Dashboard anzeigen

Nimm die Hauptdatei deines Plugins und füge den folgenden Code ein:

&lt;?php
add_action('admin_notices', 'zeige_admin_nachricht');

function zeige_admin_nachricht() {
    echo '&lt;div class="notice notice-success"&gt;&lt;p&gt;Willkommen im Dashboard! Dein Plugin arbeitet.&lt;/p&gt;&lt;/div&gt;';
}
?&gt;

Was passiert hier? Mit add_action() registrierst du die Funktion zeige_admin_nachricht() am Hook admin_notices. Dieser Hook wird jedes Mal ausgelöst, wenn das Admin-Dashboard geladen wird. Deine Funktion fügt eine Nachricht mit der CSS-Klasse notice-success hinzu, die als grüne Info-Box angezeigt wird.

Speichere die Datei und aktiviere dein Plugin. Lade das WordPress-Admin-Dashboard neu – und schon siehst du deine Nachricht!

Fazit

Du hast gerade dein erstes Plugin erstellt! Mit einer soliden Grundstruktur und Sicherheitsvorkehrungen bist du bestens gerüstet, deine Funktionalitäten zu erweitern.

Jedes Plugin beginnt mit einer Hauptdatei und einem klaren Plan. Im nächsten Schritt kannst du Hooks, Filter und APIs nutzen, um dein Plugin weiter auszubauen.

Ein fortgeschrittenes Plugin erstellen: Kontaktformular mit anpassbaren Feldern

Nachdem du dein erstes Plugin erstellt hast, ist es Zeit, auf die nächste Ebene zu gehen.

In diesem Beispiel baust du ein Kontaktformular-Plugin.

Der Clou: Du kannst auswählen, welche Felder das Formular hat, und den Inhalt direkt im Admin-Bereich anpassen.

Dieses Plugin kombiniert grundlegende PHP-Fähigkeiten mit den WordPress APIs (Dashboard Widget API, Options API und Shortcode API).

Was das Plugin können soll

  • Im Adminbereich eine Einstellungsseite bereitstellen, auf der du Felder wie Name, E-Mail, Nachricht oder benutzerdefinierte Felder hinzufügen kannst.
  • Das Formular über einen Shortcode an jeder beliebigen Stelle in WordPress einfügen.
  • Alle Kontaktanfragen per E-Mail an den Website-Administrator senden.

Bereit? Dann fangen wir an!

1. Die Struktur des Plugins

Baue das Plugin in einem neuen Ordner, etwa 📁 wp-content/plugins/kontaktformular-plugin/. Es wird eine Hauptdatei und zusätzliche Unterordner enthalten, z. B. für CSS oder zusätzliche Funktionen.


kontaktformular-plugin/
├── kontaktformular-plugin.php
├── includes/
│   └── settings.php
├── assets/
│   ├── style.css
│   └── script.js

In der Hauptdatei registrierst du die Grundfunktionalitäten des Plugins wie den Shortcode oder die Adminseite.

2. Die Hauptdatei erstellen

Erstelle die Datei kontaktformular-plugin.php. Diese Datei enthält den Header und bindet die weiteren Komponenten des Plugins ein.

&lt;?php
/*
Plugin Name: Kontaktformular Plugin
Description: Kontaktformular mit anpassbaren Feldern
Version: 1.0
Author: Dein Name
*/

defined('ABSPATH') or die('Kein Zugriff erlaubt!');

// CSS und JS einbinden
function kontaktformular_enqueue_assets() {
    wp_enqueue_style('kontaktformular-style', plugin_dir_url(__FILE__) . 'assets/style.css');
    wp_enqueue_script('kontaktformular-script', plugin_dir_url(__FILE__) . 'assets/script.js', [], false, true);
}
add_action('wp_enqueue_scripts', 'kontaktformular_enqueue_assets');

// Zusätzliche Funktionen laden
require_once plugin_dir_path(__FILE__) . 'includes/settings.php';

3. Admin-Bereich: Hinzufügen von Feldern

Im Adminbereich erstellen wir eine Einstellungsseite, auf der du Felder für dein Formular verwalten kannst. Dafür verwenden wir die Settings API.

Erstelle die Datei settings.php im Ordner includes/ und füge folgenden Code ein:

&lt;?php
function kontaktformular_create_admin_page() {
    add_menu_page(
        'Kontaktformular Einstellungen',
        'Kontaktformular',
        'manage_options',
        'kontaktformular-einstellungen',
        'kontaktformular_render_admin_page',
        'dashicons-email',
        80
    );
}
add_action('admin_menu', 'kontaktformular_create_admin_page');

function kontaktformular_render_admin_page() {
    if (isset($_POST['kf_felder'])) {
        update_option('kontaktformular_felder', $_POST['kf_felder']);
    }

    $felder = get_option('kontaktformular_felder', ['Name', 'E-Mail', 'Nachricht']);
    ?&gt;
    &lt;h1&gt;Kontaktformular Einstellungen&lt;/h1&gt;
    &lt;form method="POST"&gt;
        &lt;label for="kf_felder"&gt;Formularfelder (Mit Komma trennen):&lt;/label&gt;
        &lt;input type="text" id="kf_felder" name="kf_felder" style="width: 100%;" value="&lt;?php echo implode(', ', $felder); ?&gt;"&gt;
        &lt;button type="submit" class="button button-primary"&gt;Speichern&lt;/button&gt;
    &lt;/form&gt;
    &lt;?php
}

Der Code erzeugt eine Admin-Seite unter „Einstellungen“ und speichert die Formfelder in der Datenbank. Standardmäßig sind die Felder Name, E-Mail und Nachricht gesetzt.

4. Das Formular erstellen

Nun erstellen wir das eigentliche Kontaktformular, das du mithilfe eines Shortcodes auf deinen WordPress-Seiten oder Beiträgen einfügen kannst. Der Shortcode liest die Felder aus den Einstellungen und generiert das Formular dynamisch.

Füge folgenden Code in die Hauptdatei kontaktformular-plugin.php ein:

&lt;?php
function kontaktformular_shortcode() {
    $felder = get_option('kontaktformular_felder', ['Name', 'E-Mail', 'Nachricht']);
    ob_start();
    ?&gt;
    &lt;form method="POST" action=""&gt;
        &lt;?php foreach ($felder as $feld) : ?&gt;
            &lt;label&gt;&lt;?php echo esc_html($feld); ?&gt;&lt;/label&gt;
            &lt;input type="text" name="&lt;?php echo sanitize_title($feld); ?&gt;" required&gt;&lt;br&gt;
        &lt;?php endforeach; ?&gt;
        &lt;button type="submit"&gt;Senden&lt;/button&gt;
    &lt;/form&gt;
    &lt;?php
    return ob_get_clean();
}
add_shortcode('kontaktformular', 'kontaktformular_shortcode');

Der Shortcode heißt [kontaktformular]. Füge ihn in einen Beitrag oder auf eine Seite ein, um das Formular anzuzeigen.

5. Formular verarbeiten und E-Mail senden

Wenn ein Benutzer das Formular ausfüllt, möchtest du die Daten speichern oder als E-Mail versenden. Ergänze die Verarbeitungslogik in der Hauptdatei:

&lt;?php
function kontaktformular_verarbeiten() {
    if ($_SERVER['REQUEST_METHOD'] === 'POST' &amp;&amp; isset($_POST['kontaktformular_verarbeiten'])) {
        $felder = get_option('kontaktformular_felder', []);
        $nachricht = "";
        foreach ($felder as $feld) {
            $wert = sanitize_text_field($_POST[sanitize_title($feld)]);
            $nachricht .= $feld . ': ' . $wert . "\n";
        }

        // E-Mail senden
        wp_mail(get_option('admin_email'), 'Neue Kontaktanfrage', $nachricht);

        // Erfolgsnachricht anzeigen
        echo '&lt;p&gt;Vielen Dank! Deine Nachricht wurde gesendet.&lt;/p&gt;';
    }
}
add_action('init', 'kontaktformular_verarbeiten');

Nachdem der Benutzer das Formular absendet, wird der Inhalt E-Mail-gesichert an den Administrator der Website gesendet. Außerdem erscheint eine Bestätigung im Frontend.

6. CSS und Styling

Im Ordner 📁 assets/ erstellst du die Datei style.css. Hier sind Basis-Stylings für das Formular:

.form-wrapper input,
.form-wrapper button {
    margin: 10px 0;
    padding: 10px;
    width: 100%;
    font-size: 16px;
}

Fazit

Mit diesem Kontaktformular-Plugin hast du eine flexible und erweiterbare Lösung gebaut. Deine Nutzer können die Felder anpassen, das Formular in beliebige Seiten einfügen und die eingehenden Anfragen direkt im E-Mail-Postfach empfangen. Dies ist ein hervorragender Ausgangspunkt für komplexere Projekte. Jetzt kannst du zusätzliche Features einbauen, wie Spam-Schutz oder Datenbank-Logging. Viel Erfolg beim Weiterentwickeln!

WordPress Kontaktformular Plugin erstellen

In diesem Abschnitt bauen wir ein fortgeschrittenes Plugin. Dieses Plugin erstellt für dich einen benutzerdefinierten Shortcode. Damit kannst du HTML-Code flexibel in Beiträgen oder Seiten einfügen. Wir entwickeln zwei Varianten:

  • Ein einfacher Shortcode, der einen festen HTML-Code einfügt.
  • Einen erweiterten Shortcode, bei dem du dynamischen Inhalt übergeben kannst.

Das Plugin ist ideal, wenn du wiederholt HTML-Elemente wie Boxen, Hinweise oder Banner in deinen Beiträgen verwenden möchtest. Statt jedes Mal den HTML-Code manuell einzutragen, kannst du einfach Shortcodes nutzen.

Die Struktur des Plugins

Erstelle einen neuen Plugin-Ordner, z. B. html-shortcode-plugin. Die Verzeichnisstruktur sieht so aus:


html-shortcode-plugin/
└── html-shortcode-plugin.php

Das Plugin benötigt nur eine einzige Datei. Natürlich kannst du bei Bedarf CSS und JavaScript hinzufügen, aber hier bleibt es übersichtlich.

Die Hauptdatei erstellen

Die Hauptdatei des Plugins heißt html-shortcode-plugin.php. Schlüssele hier alle notwendigen Funktionen auf, um die Shortcodes und deren Logik zu implementieren.

Erstelle die Datei und füge folgenden Header hinzu:

&lt;?php
/*
Plugin Name: HTML Shortcode Plugin
Description: Erstellt benutzerdefinierte Shortcodes für statischen und dynamischen HTML-Code.
Version: 1.0
Author: Dein Name
*/
?&gt;

Die Datei nimmt zwei Funktionen auf:

1. Einfacher Shortcode: Statischer HTML-Code

Der erste Shortcode soll einfach eine festgelegte HTML-Markierung (wie z. B. eine farbige Box) erzeugen. Dies ist nützlich für Inhalte, die nicht oft geändert werden.

Füge diesen Code direkt unter den Header ein:

&lt;?php
// Shortcode: Zeigt eine farbige Box
function html_feste_markierung_shortcode($atts) {
    return '&lt;div style="border: 2px solid #0073aa; padding: 10px; border-radius: 5px;"&gt;
        &lt;p&gt;Dies ist dein statischer HTML-Inhalt!&lt;/p&gt;
    &lt;/div&gt;';
}
add_shortcode('markierung', 'html_feste_markierung_shortcode');
?&gt;

Nun kannst du diesen Shortcode wie folgt verwenden:


[markierung]

WordPress rendert damit folgende Ausgabe:

Dies ist dein statischer HTML-Inhalt!

2. Erweiterter Shortcode: Dynamischer HTML-Code mit übergebbarem Content

Als zweites erstellen wir einen dynamischen Shortcode. Damit kannst du HTML-Inhalte flexibel anpassen und zusätzliche Informationen übergeben.

Erweitere die Hauptdatei um diesen Code:

&lt;?php
// Shortcode mit dynamischem Content
function html_dynamischer_shortcode($atts, $content = null) {
    // Standardwerte für Attribute
    $default_atts = shortcode_atts(array(
        'farbe' =&gt; '#0073aa', // Standardfarbe
        'rahmen' =&gt; '2px',
    ), $atts);

    // HTML zurückgeben
    return '&lt;div style="
        border: ' . esc_attr($default_atts['rahmen']) . ' solid ' . esc_attr($default_atts['farbe']) . ';
        padding: 10px; border-radius: 5px;"&gt;
        ' . do_shortcode($content) . '
    &lt;/div&gt;';
}
add_shortcode('dynamische_box', 'html_dynamischer_shortcode');
?&gt;

Mit diesem Shortcode kannst du dynamische Inhalte und Stile übergeben. Beispiel:


[dynamische_box farbe="#ff0000" rahmen="4px"]

Das ist dynamischer Inhalt, den ich übergebe!

[/dynamische_box]

Das Ergebnis sieht so aus:

Das ist dynamischer Inhalt, den ich übergebe!

Funktionalitäten erklärt

  • Einfacher Shortcode: Der statische Shortcode [markierung] generiert immer dieselbe HTML-Ausgabe. Ideal für Warnungen oder wiederkehrende Inhalte.
  • Dynamischer Shortcode: Der erweiterte Shortcode [dynamische_box] erlaubt es dir, Inhalte und Design (z. B. Farbe und Rahmenbreite) direkt im Editor anzupassen. Perfekt für flexible Boxen oder Infokästen.
  • WordPress-Funktionen: Mit shortcode_atts setzt du Attribute mit Standardwerten. Die Funktion do_shortcode erlaubt es, geschachtelte Shortcodes auszuführen.

Jetzt testen!

Speichere die Datei html-shortcode-plugin.php und lade sie in den Ordner wp-content/plugins/html-shortcode-plugin hoch. Gehe ins WordPress-Backend, aktiviere das Plugin und teste die Shortcodes auf einer beliebigen Seite oder in einem Beitrag.

Nutze dafür:
[markierung] für statischen HTML-Code oder
[dynamische_box] für flexiblen, anpassbaren HTML-Content.

Fazit

Mit diesen zwei Shortcode-Funktionen hast du dir ein flexibles und nützliches Plugin erstellt. Statische Inhalte wie Hinweise oder Banner lassen sich damit genauso gut verwalten wie dynamische Boxen, die sich individuell anpassen lassen. Dieses Beispiel gibt dir die perfekte Basis, um noch mehr mit der Shortcode API zu experimentieren und dein Plugin um zusätzliche Features zu erweitern!

Best Practices für die Plugin-Entwicklung

Um ein Plugin zu entwickeln, das robust, sicher und erweiterbar ist, solltest du dich an bewährte Methoden halten. Ungeordneter und unsicherer Code kann nicht nur zu Problemen führen, sondern auch die Performance deiner WordPress-Website belasten. Hier sind die wichtigsten Best Practices für die Entwicklung von WordPress-Plugins:

Einzigartige Namensräume und Präfixe

Stelle sicher, dass alle Funktionen, Klassen und Variablen deines Plugins eindeutig benannt sind. WordPress lädt Plugins gemeinsam, und falls eine deiner Funktionen den gleichen Namen wie eine andere hat, wird ein fataler Fehler ausgelöst.

Nutze immer einen Präfix oder Namensraum, der dein Plugin eindeutig identifiziert. Zum Beispiel:

  • Nutze mein_plugin_funktion anstelle von generischen Namen wie funktion.
  • Für Klassen: class MeinPlugin_FormHandler statt class FormHandler.

Ein typischer Präfix könnte der Plugin-Name oder eine Abkürzung sein, z. B. kf_ für ein Kontaktformular-Plugin.

Sicherer Code

Unsichere Plugins können zu großen Sicherheitsrisiken führen. WordPress stellt dir mehrere Funktionen zur Verfügung, um Daten zu überprüfen und zu säubern. Hier sind einige wichtige Punkte:

  • Nutze die Funktion sanitize_text_field, um Eingaben durch Benutzer (z. B. in Formularen) zu bereinigen.
  • Prüfe immer, ob der Zugriff auf dein Plugin nur innerhalb von WordPress erfolgt, indem du defined(‚ABSPATH‘) verwendest. Beispiel:
&lt;?php
defined('ABSPATH') or die('Kein Zugriff erlaubt!');
?&gt;

Um SQL-Injections zu vermeiden, verwende immer vorbereitete Datenbankabfragen mit der Funktion esc_sql, wenn du mit der Datenbank arbeitest.

Kommentierung und Dokumentation

Lasse deinen Code für andere Entwickler – und dein zukünftiges Ich – verständlich. Jedem Modul, jeder Funktion und jedem komplexen Abschnitt solltest du klare Kommentare hinzufügen. Halte die Kommentare konsistent und informativ:

  • Erkläre, was die Funktion macht, welche Parameter sie benötigt und was sie zurückgibt.
  • Halte dich an den Kommentarstandard von WordPress (jeder Kommentar startet mit /**). Beispiel:
&lt;?php
/**
 * Berechnet die Summe von zwei Zahlen.
 *
 * @param int $zahl1 Erste Zahl.
 * @param int $zahl2 Zweite Zahl.
 * @return int Summe der Zahlen.
 */
function mein_plugin_addiere($zahl1, $zahl2) {
    return $zahl1 + $zahl2;
}
?&gt;

Erstelle zusätzlich eine kurze Dokumentation deines Plugins (z. B. in einer README-Datei). Diese sollte erklären, wie das Plugin funktioniert, wo Einstellungen zu finden sind und welche Shortcodes nutzbar sind.

Debugging und Testing

Fehlerfreie Plugins sind der Schlüssel zu einer stabilen Website. Aktiviere das Debugging in deiner WordPress-Installation, um Warnungen und Fehler zu identifizieren. Füge dazu folgende Zeilen in deine wp-config.php ein:

&lt;?php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
?&gt;

Diese Einstellungen speichern Fehler und Warnungen in der Datei debug.log im Verzeichnis wp-content. Überprüfe diese Datei regelmäßig, um potenzielle Probleme mit deinem Plugin zu erkennen.

Verwende außerdem Tools wie Query Monitor, um die Leistung deines Codes zu analysieren. Teste dein Plugin in einem Staging-Umfeld oder lokal und prüfe, ob es mit anderen Plugins und Themes kompatibel ist.

Indem du Best Practices wie einzigartige Namensräume, sauberen und sicheren Code, ausführliche Kommentierung und regelmäßiges Debugging befolgst, entwickelst du Plugins, die nicht nur technisch sauber, sondern auch einfach wartbar sind. Sie sind nicht nur sicherer, sondern verbessern auch die Performance deiner WordPress-Website. Investiere Zeit in eine durchdachte Entwicklung – das zahlt sich auf lange Sicht aus.

Fazit & Ausblick

Du hast jetzt einen tiefen Einblick in die Entwicklung von WordPress-Plugins erhalten: Von der Erstellung einfacher Plugins bis hin zu fortgeschrittenen Lösungen mit dynamischen Shortcodes oder anpassbaren Kontaktformularen. Die Möglichkeiten sind nahezu unbegrenzt – und das ist der größte Vorteil von WordPress.

Was du mit Plugins erreichen kannst

WordPress-Plugins sind mehr als nur Erweiterungen. Sie sind ein Schlüssel, um Websites flexibel und skalierbar zu machen. Egal, ob du ein Contact-Form, eine REST-API-Integration oder automatische Ereignisbenachrichtigungen entwickelst – Plugins sind der Weg dorthin. Mit den richtigen Konzepten und Best Practices kannst du nicht nur saubere und sichere Plugins erstellen, sondern auch den Workflow deiner Website nachhaltig verbessern.

Möglichkeiten durch moderne Tools und KI-Integration

Die Plugin-Entwicklung hat sich in den letzten Jahren stark weiterentwickelt. Tools wie CodeWP.ai machen die Arbeit deutlich einfacher. Mit CodeWP.ai kannst du mit der KI zusammen programmieren. Gerade für kleine Anpassungen, wie Shortcodes oder Hooks, ist das eine hervorragende Lösung.

Die Integration von KI bringt noch mehr Revolutionen. Tools wie OpenAI oder ChatGPT können dir helfen, Code effizient zu generieren und Probleme schneller zu lösen. Statt stundenlang nach einer Beispielsammlung für die Nutzung der Options API zu suchen, kannst du KI-Tools verwenden, um direkt maßgeschneiderten Code für spezifische Features zu entwickeln. Sie sind der perfekte Begleiter, um die Entwicklungszeit drastisch zu reduzieren – besonders für komplexe Aufgaben oder Multisite-Umgebungen.

Plugins als Basis für das eigene Business

Ein individuell entwickeltes Plugin ist nicht nur eine Bereicherung für deine eigene Website – es kann auch Teil deines Geschäftsmodells werden. Viele Entwickler veröffentlichen ihre Plugins auf Plattformen wie CodeCanyon oder im offiziellen WordPress-Plugin-Verzeichnis und verdienen damit Geld. Dein Plugin könnte das Nächste sein, das weltweit Tausende Websites verbessert!

Das wichtigste: Best Practices einhalten

Vergiss nicht die Grundlagen: ein sauberer, sicherer und kommentierter Code erspart dir und den Nutzern später viele Probleme. Denke an Sicherheitsvorkehrungen wie sanitize_text_field, eindeutige Präfixe für Namen und eine klare Struktur deiner Dateien. Nutze Debugging-Tools wie Query Monitor, um die Stabilität deines Plugins sicherzustellen, und teste es ausgiebig in einer Staging-Umgebung.

WordPress ist grenzenlos

Egal ob du ein einzelnes Feature für deinen Blog brauchst oder ein komplettes Framework für eine Unternehmenswebsite entwickelst – die WordPress-Plattform gibt dir alle Werkzeuge an die Hand. Nutze die APIs, die Shortcode-Funktionen und die vielfältigen Hooks, um deine Website so zu gestalten, wie du es dir vorstellst.

Jetzt bist du an der Reihe: Mach den nächsten Schritt, entwickle dein eigenes Plugin oder verbessere bestehende Plugins mit neuen Funktionen. Und wenn du mal nicht weiter weißt, stehen dir moderne Tools wie WPCode oder KI-Assistenten zur Seite. Das Potenzial ist riesig – ziehe das Beste daraus!

Das könnte dich auch interessieren…

Picture of Rafael Luge
Rafael Luge
Intermedialer Designer (MA) & Gründer von Kopf & Stift Meine Leidenschaft sind Design und Wordpress. Und erfolgreiche Websites. Auf meinem Blog gebe ich dir Tipps, wie auch du deine Website erfolgreicher machst.

Hat dir mein Beitrag geholfen?

5 / 5. 66

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

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

Mit dem Absenden des Kommentars werden dein Name, deine E-Mail-Adresse und der Kommentartext gespeichert. Die Speicherung ist für die Darstellung der Kommentare erforderlich. Weitere Informationen findest du in der Datenschutzerklärung.