DW2 · Abschlussprojekt

WordPress & PHP

Installation · PHP-Snippet · Datenbank · E-Mail · Education-Thema

Abgabe: letzter Unterrichtstag Einzelarbeit oder 2er-Gruppe 100 Punkte gesamt

Überblick: Was ist zu tun?

Das Abschlussprojekt besteht aus zwei Teilen, die beide dokumentiert werden müssen. Ihr arbeitet alleine und dürft alle verfügbaren Hilfsmittel verwenden – inklusive KI.

1

WordPress installieren

WordPress manuell auf einem Server mit HestiaCP installieren und den gesamten Prozess Schritt für Schritt dokumentieren.

2

PHP-Snippet entwickeln

Ein PHP-Snippet schreiben, das Benutzereingaben entgegennimmt, Daten in einer Datenbank speichert/abruft und die Ausgabe schön in die WordPress-Seite integriert.

Thema der WordPress-Seite: Education

Eure WordPress-Seite muss einem Bildungsthema gewidmet sein – z. B. eine Schulwebseite, eine LearningApp, ein Kurskatalog, ein Quiz-Tool, ein Notiztool für Schüler, ein Stundenplan usw. Das Thema ist frei wählbar, solange der Bezug zu Bildung/Schule klar erkennbar ist.

Teil 1: WordPress auf HestiaCP installieren

Was ist HestiaCP? HestiaCP ist ein kostenloses Webhosting-Control-Panel für Linux-Server. Es erlaubt, Domains, Datenbanken, E-Mail-Konten und SSL-Zertifikate bequem über eine Weboberfläche zu verwalten – ähnlich wie cPanel, aber Open Source.

Ihr dokumentiert die Installation Schritt für Schritt in eurem Abgabe-Dokument. Zu jedem Schritt gehört mindestens ein Screenshot und eine kurze Erklärung, was ihr gemacht habt und warum.

1

Domain in HestiaCP anlegen

Eine neue Web-Domain einrichten (z. B. meinprojekt.local oder eine echte Domain). Dokumentiert: welche Einstellungen ihr gewählt habt.

2

Datenbank in HestiaCP erstellen

Eine MySQL-Datenbank und einen Datenbankbenutzer anlegen. Notiert Datenbankname, Benutzer und Host für die WordPress-Installation.

3

WordPress herunterladen & hochladen

Aktuelle WordPress-Version von wordpress.org herunterladen, entpacken und in das Web-Verzeichnis der Domain hochladen (z. B. per FTP oder Dateimanager in HestiaCP).

4

WordPress-Installer ausführen

Die Domain im Browser aufrufen und den WordPress-Setup-Assistenten durchführen. Datenbankdaten eingeben, Admin-Konto anlegen. Jeden Schritt mit Screenshot festhalten.

5

WordPress konfigurieren & Thema wählen

WordPress-Theme auswählen, das zum Education-Thema passt. Grundstruktur der Seite (Menü, Seiten) anlegen. Dokumentiert eure Designentscheidungen kurz.

6

E-Mail-Konto in HestiaCP anlegen

In HestiaCP unter Mail → E-Mail-Konto hinzufügen ein Postfach anlegen, z. B. info@euer-username.eduhigh.net. Notiert Adresse und Passwort für die nächste Schritt. Dokumentiert mit Screenshot.

7

WordPress für E-Mail-Versand konfigurieren

Plugin „WP Mail SMTP" installieren und mit den HestiaCP-Zugangsdaten verbinden. Danach den integrierten Test-E-Mail-Versand nutzen und einen Screenshot der erfolgreich gesendeten Mail als Beweis abgeben.

SMTP-Einstellungen (WP Mail SMTP)

SMTP-Host mail.eduhigh.net Verschlüsselung STARTTLS Port 587 Benutzername eure volle E-Mail-Adresse Passwort aus Schritt 6 Absender-Adresse eure volle E-Mail-Adresse

Teil 2: PHP-Snippet entwickeln & einbinden

Ihr entwickelt ein PHP-Snippet und bindet es in eure WordPress-Seite ein. Das Snippet muss die folgenden drei Mindestanforderungen erfüllen. Für die Einbindung verwenden alle das Plugin „Code Snippets".

Benutzereingabe

Das Snippet nimmt mindestens eine Benutzereingabe über ein Formular entgegen (Text, Zahl, Auswahl – egal was).

Datenbank

Eingegebene Daten werden in der Datenbank gespeichert und können von dort wieder abgerufen und angezeigt werden.

Darstellung

Die abgerufenen Daten werden gut lesbar auf der WordPress-Seite angezeigt – kein roher PHP-Output, sondern sauberes HTML.

So bindet ihr euer Snippet ein: Plugin „Code Snippets"
1

Im WordPress-Dashboard: Plugins → Installieren → nach Code Snippets suchen → installieren & aktivieren.

2

Snippets → Neu hinzufügen: Typ „PHP-Snippet" wählen, euren Code einfügen, Snippet aktivieren. Das Plugin erzeugt automatisch einen Shortcode, z. B. [code_snippet id="1"].

3

Den Shortcode auf einer WordPress-Seite oder in einem Block einfügen → WordPress rendert euren PHP-Code an dieser Stelle.

Code Snippets fängt PHP-Fehler sicher ab – ein Fehler im Snippet legt die WordPress-Seite nicht lahm.

Ideen für euer Education-Snippet

Schüler-Feedback-Formular (Name + Kommentar → Liste aller Einträge)
Einfaches Quiz mit Auswertung (Antworten werden gezählt)
Noten-/Punkterechner mit Speicherung der Ergebnisse
Kursanmeldung (Name + Kurs → Teilnehmerliste)
Lernkarten-System (Begriff + Erklärung speichern & anzeigen)
Aufgaben-/Hausübungs-Tracker für Klassen

Vibe-Coding & Kommentare

Was ihr dürft

  • KI-Tools nutzen (ChatGPT, Claude, Copilot, …)
  • Code aus dem Internet kopieren & anpassen
  • WordPress-Plugins für Hilfsfunktionen verwenden
  • Miteinander helfen und diskutieren

Pflicht – ohne geht's nicht

  • Jede Zeile Code muss kommentiert sein
  • Ihr müsst erklären können, was euer Code tut
  • Kommentare müssen erklärend sein – nicht trivial

Beispiel: So sollen Kommentare aussehen

// ── Datenbankverbindung aufbauen ───────────────────────────────────────────── // Wir nutzen die globale WordPress-Variable $wpdb, die WordPress beim Start // automatisch anlegt. Sie enthält alle Infos zur Datenbank (Host, Name, User) // und stellt sichere Methoden für Datenbankabfragen bereit.
global $wpdb;

// Tabellenname: WordPress hängt automatisch ein Prefix davor (Standard: "wp_"). // So heißt unsere Tabelle in der Datenbank z. B. "wp_feedbacks".
$tabelle = $wpdb->prefix . 'feedbacks';

// Formular wurde abgeschickt (POST-Anfrage)? // Wir prüfen, ob der Absende-Button geklickt wurde, bevor wir Daten verarbeiten.
if ( isset( $_POST['absenden'] ) ) {

// Benutzereingabe sicher machen: sanitize_text_field() entfernt gefährliche // Zeichen (z. B. HTML-Tags), damit kein XSS-Angriff möglich ist.
$name = sanitize_text_field( $_POST['name'] );

// Daten in die Datenbank schreiben. // $wpdb->insert() verhindert SQL-Injection automatisch (Prepared Statement).
$wpdb->insert( $tabelle, [
'name' => $name,
'erstellt_am' => current_time( 'mysql' ), // aktueller Zeitstempel
] );
}

Kommentare erklären das Warum und den Kontext – nicht nur das offensichtliche „Was".

Abgabe

Abzugeben sind folgende Dateien / Inhalte:

A Dokumentation (PDF oder Word) mit allen Screenshots und Erklärungen zur WordPress-Installation (Teil 1)
B PHP-Snippet-Code als .php-Datei, vollständig kommentiert
C Link zur laufenden Webseite ODER Video-Demo (ca. 1–2 Minuten), das die Funktionen zeigt
D Kurze Reflexion (½–1 Seite): Was hat funktioniert? Was war schwierig? Was habt ihr gelernt?
DW2 · Abschlussprojekt · IB4.2FW01 · SS 2026