WordPress-Plugin programmieren: Einstieg, Grundgerüst und die besten Anleitungen

Veröffentlicht am

· von Norbert Hofmann

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

QuelleInhaltFür wen
Plugin HandbookGrundlagen, Hooks, Einstellungsseiten, Sicherheit, eigene Inhaltstypenalle
Block Editor Handbookeigene Blöcke mit JavaScript und ReactFortgeschrittene
Code Referencealle Funktionen, Klassen und Hooks mit BeispielenNachschlagen
Learn WordPresskostenlose Kurse, auch zur EntwicklungEinsteiger
Coding StandardsRegeln für sauberen, einheitlichen Codealle

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

  1. Richte eine lokale Testumgebung ein, siehe WordPress lokal installieren. Entwickle nie direkt auf einer Live-Website.
  2. Lege in wp-content/plugins/ einen Ordner mein-erstes-plugin an und darin eine Datei mein-erstes-plugin.php.
  3. 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:

RegelWozuFunktionen
Eingaben bereinigennur erwartete Daten speichernsanitize_text_field(), absint(), sanitize_email()
Ausgaben maskierenCross-Site-Scripting verhindernesc_html(), esc_attr(), esc_url()
Berechtigung prüfennur befugte Benutzer handeln lassencurrent_user_can()
Nonces verwendenCross-Site Request Forgery verhindernwp_nonce_field(), check_admin_referer()
Datenbank sicher abfragenSQL-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.

Quellen

Über den Autor: Norbert Hofmann

Norbert betreibt das WPDE-Forum und hat jahrelang im technischen Support eines Webhosters täglich WordPress-Seiten betreut. Heute arbeitet er als Cyber Defense Analyst, hat Sicherheitslücken in WordPress-Plugins gefunden (veröffentlichte CVEs) und engagiert sich mit deepfake.de gegen Betrug mit Deepfakes. Mehr auf norberthofmann.com.

Weitere Antworten