17 KiB
💬 WP Business Forum
Ein vollständiges, eigenständiges Forum-Plugin für WordPress — mit eigenem Login-System, dynamischen Rollen, Privatnachrichten, BBCode, Level-System, Moderations-Tools und vielem mehr.
Version 2.0.0 · Getestet mit WordPress 6.x · PHP 8.0+ · MySQL 5.7+
📋 Inhaltsverzeichnis
- Features
- Installation
- Erster Start — Setup-Wizard
- Shortcode
- Admin-Bereich
- Rollen & Berechtigungen
- Level-System
- BBCode-Referenz
- Dateistruktur
- Datenbank-Tabellen
- Export & Import
- FAQ
✨ Features
🔐 Eigenes Login-System
- Komplett unabhängig vom WordPress-Backend — Forum-Nutzer brauchen keinen WP-Account
- Registrierung direkt im Forum-Frontend
- Remember-Me Cookie (30 Tage)
- Passwort vergessen mit sicherem Reset-Link per E-Mail (1 Stunde gültig)
- Auto-Logout bei Inaktivität (einstellbar: 5 Min. bis 8 Std.)
- Groß-/Kleinschreibung beim Login egal
📁 Kategorien & Threads
- Eltern-Kind-Hierarchie — unbegrenzte Verschachtelung
- Threads erstellen, bearbeiten (Titel + Inhalt), löschen
- Pinnen und Schließen von Threads (Moderatoren+)
- Thread-Tags für bessere Auffindbarkeit
- Views-Counter pro Thread
- Breadcrumb-Navigation durch die gesamte Hierarchie
- Kategorie-Zugangsbeschränkung per Mindest-Rolle
💬 Posts & Interaktion
- Antworten mit Live-Vorschau (kein Seitenreload)
- Like-System für Threads und Posts
- Emoji-Reaktionen (👍 ❤️ 😂 😮 😢 🔥)
- Zitieren mit automatischem
[quote=Name]-BBCode - @Erwähnungen — klickbare Profil-Links
- Beiträge melden mit Begründung
- Posts und Thread-Titel nachträglich bearbeiten
🛡️ Rollen-System
6 Standard-Rollen + beliebig viele eigene Rollen:
| Rolle | Level | Besonderheit |
|---|---|---|
| 👑 Superadmin | 100 | Automatisch an WP-Administrator gebunden — unveränderlich |
| 🔴 Admin | 80 | Vollständige Verwaltung |
| 🟡 Moderator | 50 | Moderation von Threads & Posts |
| 🔵 VIP | 20 | Eigenes Badge |
| ⚪ Member | 10 | Standard für neue Nutzer |
| ⛔ Gesperrt | -1 | Kein Forum-Zugang |
Jede Rolle ist vollständig anpassbar: Label, Level, Farbe, Icon (FontAwesome), Permissions.
⭐ Level-System
Automatisches Level basierend auf Beitragsanzahl (kann deaktiviert werden):
| Level | Ab Beiträgen | Icon |
|---|---|---|
| 🌱 Neuling | 0 | fas fa-seedling |
| 🪶 Schreiberling | 10 | fas fa-feather |
| 🔥 Erfahrener | 50 | fas fa-fire |
| 🛡️ Veteran | 150 | fas fa-shield-halved |
| 👑 Legende | 500 | fas fa-crown |
Levels sind im Admin vollständig anpassbar — Bezeichnung, Schwellenwert, Icon, Farbe.
👤 Profile
- Eigenes Avatar-Bild (Upload oder Gravatar)
- Anzeigename, Bio und Signatur (max. 300 Zeichen, erscheint unter jedem Beitrag)
- Profil-Seite mit Beitragsübersicht und Fortschrittsbalken
- Mitgliederliste (nur für eingeloggte Nutzer) mit Suche und Sortierung
✉️ Privatnachrichten
- Direktnachrichten zwischen Nutzern
- Posteingang mit Konversations-Übersicht
- Ungelesene Nachrichten werden im Topbar angezeigt
- Ältere Nachrichten laden (Pagination)
- Nachrichten löschen
🔔 Benachrichtigungen
- In-App-Glocke in der Topbar mit Badge
- E-Mail-Benachrichtigungen bei:
- Antwort auf eigenen Thread
- @Erwähnung
- Neue Privatnachricht
- Benachrichtigungen als gelesen markieren
🔍 Suche
- Volltextsuche in Threads und Posts
- Live-Vorschläge bei der Eingabe
- Ergebnisse mit Kategorie und Datum
🔧 Moderations-Tools
- Thread pinnen / entpinnen
- Thread schließen / öffnen
- Thread in andere Kategorie verschieben
- Posts und Threads löschen
- Meldungs-System mit Admin-Dashboard
- Nutzer sperren mit Sperrgrund (wird beim Login angezeigt)
⚙️ Admin-Backend
- Übersicht mit Echtzeit-Statistiken
- Kategorien verwalten (Hierarchie, Icons, Min-Rolle)
- Rollen erstellen, bearbeiten, löschen
- Level konfigurieren
- Mitglieder verwalten — Rolle, E-Mail, Passwort, Anzeigename ändern
- Meldungen bearbeiten (offen / erledigt / verworfen)
- Einstellungen — alle Forum-Texte anpassbar, kein Code nötig
- Export / Import — vollständige Datensicherung
🚀 Installation
Methode 1 — ZIP hochladen (empfohlen)
- Lade das Repository als
.zipherunter - WordPress-Admin → Plugins → Installieren → Plugin hochladen
- ZIP auswählen und installieren
- Plugin aktivieren
Methode 2 — FTP / Dateimanager
- Lade den Ordner
wp-business-forumauf deinen Server hoch - Zielverzeichnis:
/wp-content/plugins/wp-business-forum/ - WordPress-Admin → Plugins → WP Business Forum aktivieren
Voraussetzungen
- WordPress 6.0+
- PHP 8.0+
- MySQL 5.7+ oder MariaDB 10.3+
wp_mail()für E-Mail-Benachrichtigungen (Standard-WP-Mailer)
🧙 Erster Start — Setup-Wizard
Nach der Aktivierung wirst du automatisch zum Setup-Wizard weitergeleitet:
Schritt 1 — Superadmin-Konto erstellen
- Dein Name und deine WP-Admin-E-Mail sind bereits vorausgefüllt
- Gib ein Passwort für dein Forum-Konto ein
- Das Konto wird automatisch dauerhaft mit dem Superadmin-Status verknüpft
Schritt 2 — Forum-Seite erstellen
- Optional: Eine WordPress-Seite mit dem Shortcode wird automatisch angelegt
- Du kannst auch eine eigene Seite manuell erstellen
Schritt 3 — Fertig!
- Direktlink zur Forum-Seite
- Link zum Admin-Dashboard
⚠️ Wichtig: Verwende beim Superadmin-Konto dieselbe E-Mail wie dein WordPress-Administratorkonto. Das Plugin verknüpft sie automatisch und stellt bei jedem Login sicher, dass dein Account immer Superadmin-Rechte hat.
📌 Shortcode
Füge diesen Shortcode auf einer beliebigen WordPress-Seite ein:
[business_forum]
Das Plugin erkennt automatisch den aktuellen URL-Parameter und zeigt die passende Ansicht:
| URL-Parameter | Ansicht |
|---|---|
| (kein Parameter) | Forum-Startseite |
?forum_cat=slug |
Kategorie-Ansicht |
?forum_thread=123 |
Thread-Ansicht |
?forum_profile=123 |
Profil-Seite |
?forum_members=1 |
Mitgliederliste |
?forum_search=Begriff |
Suchergebnisse |
?forum_tag=tagname |
Tag-Übersicht |
?forum_dm=1 |
Privatnachrichten |
?wbf_do_logout=1 |
Logout (serverseitig) |
?wbf_reset_token=… |
Passwort zurücksetzen |
🛠️ Admin-Bereich
Erreichbar unter WP-Admin → Business Forum
Übersicht
- Echtzeit-Statistiken: Threads, Beiträge, Mitglieder, Tags, Meldungen
- Schnellzugriff auf alle Unterbereiche
- Rollensystem-Übersicht
Kategorien
- Kategorien erstellen und bearbeiten
- Eltern-Kind-Hierarchie per Dropdown
- Icon (FontAwesome-Klasse), Beschreibung, Sortierreihenfolge
- Mindest-Rolle zum Posten (z.B. nur Moderatoren können in "Ankündigungen" posten)
Rollen
- Eigene Rollen mit individuellem Label, Level (1–99), Farbe, Icon und Permissions erstellen
- Rollen löschen (Nutzer werden automatisch auf "Member" gesetzt)
- Superadmin ist gesperrt und kann nicht verändert werden
Verfügbare Permissions:
| Permission | Beschreibung |
|---|---|
post |
Beiträge schreiben |
create_thread |
Threads erstellen |
like |
Beiträge liken |
pin_thread |
Threads pinnen |
close_thread |
Threads schließen |
delete_post |
Posts löschen |
delete_thread |
Threads löschen |
manage_users |
Nutzer verwalten |
manage_cats |
Kategorien verwalten |
post_announcement |
In eingeschränkte Kategorien posten |
Level
- Level-Bezeichnung, Mindest-Beitragsanzahl, Icon und Farbe anpassen
- Neues Level hinzufügen oder bestehende löschen
- Level-System global aktivieren/deaktivieren
- Zurücksetzen auf Standard-Konfiguration
Mitglieder
- Alle Forum-Nutzer mit Rolle, Beitragsanzahl und Registrierungsdatum
- Rolle ändern direkt in der Tabelle (inkl. Sperrgrund bei "Gesperrt")
- Profil bearbeiten: Anzeigename, E-Mail, Passwort
- Superadmin-Konten sind schreibgeschützt
Meldungen
- Gemeldete Beiträge mit Begründung und Melder
- Status: Offen · Erledigt · Verworfen
- Direktlink zum gemeldeten Beitrag
Einstellungen
Alle sichtbaren Texte des Forums ohne Code ändern:
- Hero-Bereich (Titel, Untertitel)
- Topbar (Forum-Name, Button-Beschriftungen)
- Statistik-Labels
- Abschnittsüberschriften
- Sidebar-Titel
- Auto-Logout nach Inaktivität (0 = deaktiviert, bis 8 Stunden)
Export / Import
Vollständige Datensicherung aller Forum-Daten als .json-Datei:
| Bereich | Inhalt |
|---|---|
| ⚙️ Einstellungen | Forum-Texte, Labels, Auto-Logout |
| 🛡️ Rollen | Alle Rollen mit Permissions & Design |
| ⭐ Level | Level-Konfiguration & Status |
| 📂 Kategorien | Kategoriestruktur inkl. Hierarchie |
| 👥 Benutzer | Accounts inkl. Passwort-Hashes |
| 💬 Threads & Posts | Alle Inhalte inkl. Tags |
| ❤️ Likes & Reaktionen | Likes, Reaktionen, Benachrichtigungen |
| ✉️ Privatnachrichten | Alle DM-Konversationen |
| 🚩 Meldungen | Gemeldete Beiträge inkl. Status |
🎨 Rollen & Berechtigungen
Superadmin — Sonderfall
Der Superadmin ist immer an den WordPress-Administrator gebunden:
- Wird bei jedem Seitenaufruf automatisch synchronisiert
- Kann nicht manuell vergeben oder entzogen werden
- Hat Zugriff auf alle Funktionen ohne Einschränkung
- Kann im Admin-Panel nicht gelöscht oder bearbeitet werden
Rollen-Hierarchie
Höherer level-Wert = mehr Rechte. Wenn eine Kategorie eine Mindest-Rolle hat, müssen Nutzer mindestens dieses Level haben um dort zu posten.
Eigene Rollen erstellen
- WP-Admin → Business Forum → Rollen → + Neue Rolle
- Rollen-Schlüssel vergeben (z.B.
trusted_member) — kann nicht geändert werden - Anzeigename, Level (zwischen
member= 10 undadmin= 80), Farbe, Icon, Permissions - Speichern
📊 Level-System
Das Level-System ist optional und kann jederzeit ein- oder ausgeschaltet werden. Es basiert ausschließlich auf der Anzahl der Beiträge eines Nutzers.
Level-Badge
Wird auf der Profil-Seite, in Posts und auf der Mitgliederliste angezeigt.
Fortschrittsbalken
Auf der eigenen Profil-Seite wird angezeigt:
- Aktuelles Level mit Badge
- Anzahl der benötigten Beiträge bis zum nächsten Level
- Fortschrittsbalken in der Levelfarbe
Konfiguration
WP-Admin → Business Forum → Level → Neue Einträge hinzufügen oder bestehende bearbeiten.
🏷️ BBCode-Referenz
Nutzer können in Threads und Posts folgende Formatierungen verwenden:
Text-Formatierung
[b]Fett[/b]
[i]Kursiv[/i]
[u]Unterstrichen[/u]
[s]Durchgestrichen[/s]
[h2]Überschrift 2[/h2]
[h3]Überschrift 3[/h3]
Farbe & Größe
[color=red]Roter Text[/color]
[color=#00b4d8]Hex-Farbe[/color]
[size=small]Kleiner Text[/size]
[size=large]Großer Text[/size]
[size=xlarge]Sehr großer Text[/size]
Erlaubte Farbnamen: red, blue, green, orange, yellow, purple, pink, cyan, white, gray, black, gold, silver, lime, teal, navy
Links & Medien
[url=https://beispiel.de]Link-Text[/url]
[url]https://beispiel.de[/url]
[img]https://beispiel.de/bild.jpg[/img]
Code
[code]
function helloWorld() {
echo "Hallo Welt!";
}
[/code]
Inline: [icode]$variable[/icode]
Zitat
[quote]Allgemeines Zitat[/quote]
[quote=M_Viper]Zitat von M_Viper[/quote]
Spoiler
[spoiler]Versteckter Inhalt[/spoiler]
[spoiler=Titel]Inhalt mit Titel[/spoiler]
Listen
[list]
[*] Erstes Element
[*] Zweites Element
[/list]
[list=1]
[*] Nummeriert
[*] Liste
[/list]
Ausrichtung & Trennlinie
[center]Zentrierter Text[/center]
[right]Rechtsbündiger Text[/right]
[hr]
@Erwähnungen
@Benutzername
Wird automatisch zu einem klickbaren Profil-Link und sendet eine Benachrichtigung.
📁 Dateistruktur
wp-business-forum/
├── wp-business-forum.php # Plugin-Hauptdatei
├── includes/
│ ├── class-forum-db.php # Datenbankschicht (alle Abfragen)
│ ├── class-forum-auth.php # Login, Register, Session, Remember-Me
│ ├── class-forum-roles.php # Dynamisches Rollensystem
│ ├── class-forum-levels.php # Level-System
│ ├── class-forum-bbcode.php # BBCode → HTML Parser
│ ├── class-forum-shortcodes.php # Frontend-Rendering (alle Ansichten)
│ └── class-forum-ajax.php # AJAX-Handler (alle Aktionen)
├── admin/
│ ├── forum-admin.php # Admin-Panel (alle Unterseiten)
│ ├── forum-settings.php # Einstellungsseite & wbf_get_settings()
│ └── forum-setup.php # Einrichtungs-Wizard
└── assets/
├── css/
│ └── forum-style.css # Komplettes Dark-Theme (Minecraft Modern)
└── js/
└── forum-script.js # Alle Frontend-Interaktionen (jQuery)
🗄️ Datenbank-Tabellen
Alle Tabellen werden bei der Plugin-Aktivierung automatisch erstellt. Bestehende Tabellen werden beim Update automatisch um neue Spalten erweitert (via ALTER TABLE).
| Tabelle | Inhalt |
|---|---|
{prefix}forum_users |
Forum-Accounts (unabhängig von WP-Usern) |
{prefix}forum_categories |
Kategorien mit Eltern-Kind-Hierarchie |
{prefix}forum_threads |
Hauptthreads |
{prefix}forum_posts |
Antworten auf Threads |
{prefix}forum_likes |
Likes auf Threads und Posts |
{prefix}forum_tags |
Tag-Bibliothek |
{prefix}forum_thread_tags |
Verknüpfung Thread ↔ Tags |
{prefix}forum_messages |
Privatnachrichten |
{prefix}forum_reactions |
Emoji-Reaktionen auf Posts |
{prefix}forum_reports |
Gemeldete Beiträge |
{prefix}forum_notifications |
In-App-Benachrichtigungen |
{prefix}forum_remember_tokens |
Remember-Me-Tokens |
💾 Export & Import
Export
- WP-Admin → Business Forum → Export / Import
- Gewünschte Bereiche anwählen (alle standardmäßig aktiviert)
- Als JSON exportieren klicken
- Die Datei wird sofort heruntergeladen (
wbf-backup-DATUM.json)
Import
- WP-Admin → Business Forum → Export / Import
- Backup-Datei auswählen (
.json) - Überschreiben-Optionen nach Bedarf aktivieren
- Importieren klicken
⚠️ Hinweis: Der Import von Nutzern enthält Passwort-Hashes und funktioniert für Migrationen zwischen WordPress-Sites. Superadmin-Status wird beim Import nie übertragen — nur der WP-Administrator erhält automatisch Superadmin-Rechte.
Überschreiben-Optionen
| Option | Effekt |
|---|---|
| Kategorien überschreiben | Löscht alle bestehenden Kategorien vor dem Import |
| Benutzer aktualisieren | Aktualisiert vorhandene Accounts (gleicher Username) |
| Threads & Posts überschreiben | Löscht alle Threads, Posts, Likes und Reaktionen |
| Privatnachrichten überschreiben | Löscht alle DMs vor dem Import |
| Meldungen überschreiben | Löscht alle Meldungen vor dem Import |
❓ FAQ
Brauchen Forum-Nutzer einen WordPress-Account? Nein. Das Forum hat ein komplett eigenständiges Login-System. Forum-Nutzer können sich direkt im Frontend registrieren ohne Zugang zum WordPress-Backend.
Wie werde ich Superadmin?
Registriere dich im Forum mit derselben E-Mail-Adresse wie dein WordPress-Administratorkonto. Das Plugin erkennt dies automatisch. Falls du bereits ein Forum-Konto mit einer anderen E-Mail hast, kannst du dieses entweder im Setup-Wizard hochstufen oder direkt in der Datenbank das role-Feld auf superadmin setzen.
Kann ich mehrere Superadmins haben?
Nein. Der Superadmin-Status ist fest an das WordPress-Administratorkonto gebunden. Du kannst jedoch mehrere Nutzer auf die Rolle Admin (Level 80) setzen — diese haben nahezu dieselben Rechte.
Funktioniert das Plugin mit Caching-Plugins?
Ja, grundsätzlich. Der Logout-Button nutzt einen direkten Server-Link (?wbf_do_logout=1) statt AJAX und ist daher Caching-sicher. Falls du Probleme mit veralteten Nonces hast, deaktiviere das Caching für die Forum-Seite in deinem Caching-Plugin.
Wie passe ich das Design an?
Das Plugin enthält ein vollständiges Dark-Theme (forum-style.css) passend zum "Minecraft Modern Theme"-Stil. Für eigene Anpassungen füge dein CSS in der WordPress-Customizer oder einer Custom-CSS-Datei hinzu und verwende die CSS-Custom-Properties des Plugins (z.B. --c-primary, --c-surface).
Welche E-Mail-Konfiguration wird benötigt?
Das Plugin nutzt wp_mail() — denselben Mechanismus wie WordPress selbst. Wenn dein WordPress bereits E-Mails senden kann (z.B. für Passwort-Zurücksetzen), funktionieren auch die Forum-Benachrichtigungen. Für zuverlässige E-Mail-Zustellung empfiehlt sich ein SMTP-Plugin wie WP Mail SMTP.
Wie lösche ich alle Forum-Daten? Deaktiviere und lösche das Plugin. Die Datenbanktabellen werden dabei nicht automatisch gelöscht (WordPress-Standard). Um die Tabellen zu entfernen, führe in phpMyAdmin oder WP-CLI folgende Abfragen aus:
DROP TABLE IF EXISTS
wp_forum_users, wp_forum_categories, wp_forum_threads, wp_forum_posts,
wp_forum_likes, wp_forum_tags, wp_forum_thread_tags, wp_forum_messages,
wp_forum_reactions, wp_forum_reports, wp_forum_notifications, wp_forum_remember_tokens;
Entwickelt mit ❤️ für die WordPress-Community