1. Home
  2. Docs
  3. Development
  4. Plugin Entwicklung Lernen
  5. Aufgabe 2 Mini-Plugin: Auto-Copyright-Jahr

Aufgabe 2 Mini-Plugin: Auto-Copyright-Jahr

Du bist Freelancer und ein Kunde braucht eine kleine Zusatzfunktion für seine WordPress-Seite – etwas, das es noch nicht als fertigem Plugin gibt (oder das du besser umsetzen kannst).

Aufgabenstellung

  1. Wähle eine Idee aus (z.B. Footer-Copyright-Jahr automatisch aktualisieren, Custom Login-Logo, Post-Views-Zähler).
  2. Entwirf zuerst einen kurzen Konzeptplan: Was soll das Plugin tun? Welche Hooks/APIs brauchst du?
  3. Implementiere das Plugin mit korrektem Plugin-Header, sauberem Code-Stil und Sicherheit (esc_html(), Nonces wo nötig).
  4. Schreibe eine kurze README mit Installationsanleitung.

Lernziele

Plugin-HeaderCode-SicherheitNoncesKonzeptplanungREADME schreiben

Abgabe: Plugin-Ordner als .zip + README.md + 5-min. Präsentation der Idee

Kreativ

Musterlösung (Beispiel-Idee: automatisches Copyright-Jahr)

auto-copyright/auto-copyright.php

<?php
/**
 * Plugin Name: Auto Copyright Jahr
 * Description: Ersetzt %%JAHR%% im Footer-Widget automatisch durch das aktuelle Jahr.
 * Version:     1.0
 * Author:      Lernende
 */

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

add_filter( 'widget_text', 'autocopy_replace_year' );
add_filter( 'widget_text_content', 'autocopy_replace_year' );

function autocopy_replace_year( $text ) {
    return str_replace(
        '%%JAHR%%',
        esc_html( date_i18n( 'Y' ) ), // WordPress-lokalisierte Jahreszahl
        $text
    );
}

README.md

# Auto Copyright Jahr

Ersetzt den Platzhalter `%%JAHR%%` in Widget-Texten automatisch
durch das aktuelle Jahr – kein manuelles Updaten mehr nötig.

## Installation
1. Ordner in `/wp-content/plugins/` hochladen
2. Im Backend unter Plugins aktivieren

## Verwendung
Im Text-Widget oder im Footer einfach `%%JAHR%%` einfügen:
> © %%JAHR%% Mein Unternehmen

## Sicherheit
Ausgabe wird mit `esc_html()` escaped. Keine Datenbankzugriffe.

Warum diese Lösung?

Der widget_text-Filter ist ein einfacher, sauberer Einstieg: kein eigenes DB-Schema, keine Settings-Page nötig – und trotzdem echten Mehrwert. date_i18n() statt date() respektiert die WordPress-Zeitzone.

How can we help?