1. Home
  2. Docs
  3. Development
  4. Plugin Entwicklung Lernen
  5. Aufgabe 1 – Plugin-Anatomie & Hooks

Aufgabe 1 – Plugin-Anatomie & Hooks

Problemlösung / Transfer

Du erhältst ein bestehendes, minimales WordPress-Plugin mit einem einzigen Hook. Deine Aufgabe: analysiere den Code, erkläre was er tut – und erweitere ihn gezielt.

  1. Installiere das Starter-Plugin hello-extended/hello-extended.php lokal (z.B. mit LocalWP).
  2. Identifiziere: Welche Hook-Art wird verwendet (add_action oder add_filter)? Was ist der Unterschied?
  3. Füge einen zweiten Hook hinzu, der im Admin-Bereich eine Custom-Notice anzeigt.
  4. Erkläre schriftlich (~200 Wörter): Warum ist die Hook-Architektur zentral für WordPress-Plugins?
Actions vs. Filters Plugin-Dateistruktur WordPress Hook-System Admin Notices
Abgabe: Erweitertes Plugin als .zip + schriftliche Reflexion (PDF oder .md)

Musterlösung

hello-extended/hello-extended.php

<?php
/**
 * Plugin Name: Hello Extended
 * Description: Erweitertes Starter-Plugin zur Hook-Demonstration
 * Version:     1.1
 * Author:      Lernende
 */

if ( ! defined( 'ABSPATH' ) ) exit;

// ACTION-Hook: Code wird ausgeführt, gibt nichts zurück
add_action( 'wp_footer', 'helloext_footer_text' );
function helloext_footer_text() {
    echo '<p style="text-align:center;color:#aaa;">Erstellt mit Hello Extended</p>';
}

// FILTER-Hook: Empfängt einen Wert, verändert ihn, gibt ihn zurück
add_filter( 'the_title', 'helloext_title_prefix' );
function helloext_title_prefix( $title ) {
    if ( is_single() ) {
        return '⭐ ' . $title;
    }
    return $title;
}

// Admin Notice – erscheint im WordPress-Backend
add_action( 'admin_notices', 'helloext_admin_notice' );
function helloext_admin_notice() {
    echo '<div class="notice notice-success is-dismissible">
        <p><strong>Hello Extended</strong> ist aktiv – Hooks funktionieren!</p>
    </div>';
}

Erklärung: Actions vs. Filters

Actions (add_action) werden an bestimmten Stellen im WordPress-Lebenszyklus ausgelöst. Eine Callback-Funktion führt Aktionen aus (HTML ausgeben, Daten speichern) – sie gibt nichts zurück.

Filters (add_filter) empfangen einen Wert, verändern ihn und geben ihn zwingend zurück. WordPress ersetzt den Originalwert durch den Rückgabewert. Ohne return verschwindet der Inhalt.

Die Hook-Architektur ermöglicht es, WordPress-Core und andere Plugins zu erweitern, ohne deren Dateien zu verändern – das ist das Fundament des gesamten Plugin-Ökosystems.

How can we help?