Kurz gesagt: Die beste Anleitung ist das offizielle Plugin Handbook auf developer.wordpress.org, ergänzt um das Block Editor Handbook für eigene Blöcke und die kostenlosen Kurse auf learn.wordpress.org. Ein Plugin ist im einfachsten Fall eine PHP-Datei mit einem Kopfkommentar im Ordner wp-content/plugins/. Von Anfang an wichtig: Eingaben prüfen, Ausgaben maskieren, Nonces und Berechtigungen verwenden.
Die wichtigsten Anleitungen
| Quelle | Inhalt | Für wen |
|---|---|---|
| Plugin Handbook | Grundlagen, Hooks, Einstellungsseiten, Sicherheit, eigene Inhaltstypen | alle |
| Block Editor Handbook | eigene Blöcke mit JavaScript und React | Fortgeschrittene |
| Code Reference | alle Funktionen, Klassen und Hooks mit Beispielen | Nachschlagen |
| Learn WordPress | kostenlose Kurse, auch zur Entwicklung | Einsteiger |
| Coding Standards | Regeln für sauberen, einheitlichen Code | alle |
Die Seiten sind englisch, aber gut strukturiert und aktuell. Veraltete Tutorials aus Blogs erkennst du oft daran, dass sie Funktionen wie mysql_query() oder das Bearbeiten von Kerndateien zeigen.
Anleitung: Dein erstes Plugin
- Richte eine lokale Testumgebung ein, siehe WordPress lokal installieren. Entwickle nie direkt auf einer Live-Website.
- Lege in
wp-content/plugins/einen Ordnermein-erstes-pluginan und darin eine Dateimein-erstes-plugin.php. - Füge den folgenden Code ein und aktiviere das Plugin unter Plugins.
<?php
/**
* Plugin Name: Mein erstes Plugin
* Description: Zeigt unter jedem Beitrag einen Hinweis an.
* Version: 1.0.0
* Requires at least: 6.5
* Requires PHP: 8.1
* Author: Dein Name
* License: GPL-2.0-or-later
* Text Domain: mein-erstes-plugin
*/
defined( 'ABSPATH' ) || exit;
add_filter( 'the_content', function ( $content ) {
if ( is_singular( 'post' ) && in_the_loop() && is_main_query() ) {
$hinweis = __( 'Danke fürs Lesen!', 'mein-erstes-plugin' );
$content .= '<p class="mein-hinweis">' . esc_html( $hinweis ) . '</p>';
}
return $content;
} );
Das Beispiel zeigt die wichtigsten Prinzipien: Der Kopfkommentar macht die Datei zum Plugin, defined( 'ABSPATH' ) || exit; verhindert den direkten Aufruf, ein Filter verändert den Inhalt, ohne Kerndateien anzufassen, und esc_html() maskiert die Ausgabe. Mehr zu Hooks steht in Übersicht der WordPress-Hooks.
Sicherheit von Anfang an
Die meisten Sicherheitslücken in Plugins entstehen durch dieselben wenigen Fehler. Fünf Regeln verhindern den Großteil davon:
| Regel | Wozu | Funktionen |
|---|---|---|
| Eingaben bereinigen | nur erwartete Daten speichern | sanitize_text_field(), absint(), sanitize_email() |
| Ausgaben maskieren | Cross-Site-Scripting verhindern | esc_html(), esc_attr(), esc_url() |
| Berechtigung prüfen | nur befugte Benutzer handeln lassen | current_user_can() |
| Nonces verwenden | Cross-Site Request Forgery verhindern | wp_nonce_field(), check_admin_referer() |
| Datenbank sicher abfragen | SQL-Injection verhindern | $wpdb->prepare() |
Ein typischer Fehler ist, bei AJAX- oder REST-Endpunkten nur den Nonce, aber keine Berechtigung zu prüfen. Dann kann jeder angemeldete Abonnent Admin-Funktionen auslösen. Prüfe immer beides.
Für Fortgeschrittene: Werkzeuge für die Entwicklung
# Plugin-Grundgerüst mit WP-CLI erzeugen
wp scaffold plugin mein-plugin --plugin_name="Mein Plugin"
# Neuen Block mit Build-Setup anlegen
npx @wordpress/create-block@latest mein-block
# Lokale Umgebung mit Docker starten (im Plugin-Ordner)
npx @wordpress/env start
# Code gegen die WordPress Coding Standards prüfen
phpcs --standard=WordPress mein-plugin.php
Zum Debuggen empfiehlt sich das Plugin Query Monitor, das Datenbankabfragen, Hooks und PHP-Fehler jedes Seitenaufrufs anzeigt. Willst du dein Plugin im offiziellen Verzeichnis veröffentlichen, lies vorher die Richtlinien im Plugin Handbook, jede Einreichung wird von einem Team geprüft.
Wie Plugins aus Nutzersicht bewertet und gepflegt werden, steht in WordPress-Plugins finden und prüfen. Eigene Blöcke und Widgets behandelt Eigene Widgets und Blöcke schreiben.
Passend dazu: Bevor du selbst programmierst, lohnt ein Blick ins Verzeichnis: Wo finde ich WordPress-Plugins? Und wenn du veröffentlichst, klärt Unter welcher Lizenz steht WordPress? die Lizenzfrage.
Frage dazu? Zeig deinen Code im Forum „Plugins“: Zum WPDE-Forum
Häufige Fragen
Welche Programmiersprachen brauche ich?
PHP für die Logik, HTML und CSS für die Ausgabe. Für eigene Blöcke im Editor kommt JavaScript mit React dazu.
Plugin oder functions.php?
Alles, was nicht zum Aussehen gehört, gehört in ein Plugin. Dann überlebt es einen Theme-Wechsel.