Shortcodes
Das Shortcode-Modul ist ein Core-Modul und das Rückgrat des Weinhold Frameworks. Es stellt eine zentrale Registry bereit, über die alle anderen Module ihre Shortcodes registrieren – inklusive Beschreibung und Parameterdokumentation.
Allgemein
Wie es funktioniert
Jedes Modul ruft beim Laden weinhold_add_shortcode() auf und übergibt Tag, Callback, Beschreibung und optionale Parameter-Dokumentation. Das Modul sammelt alle Einträge und listet sie übersichtlich im Admin-Dashboard unter Weinhold → Shortcodes auf – so hat man immer alle verfügbaren Shortcodes im Blick, ohne den Code der einzelnen Module durchsuchen zu müssen.
Warum Core?
Dieses Modul wird immer geladen, unabhängig davon ob andere Module aktiv sind. Ohne es würden keine Shortcodes anderer Module registriert. Es ist die stille Grundlage für alles, was auf der Seite sichtbar wird.
Dateien
modules/shortcode_core.php – einzige Datei des Moduls (Core-Modul, das _core.php-Suffix lädt es immer): Registrierungsfunktion, Fehlerbehandlung pro Shortcode, Parameter-Katalog als Fallback, Admin-Übersichtsseite.
Für Entwickler
Registrierung
weinhold_add_shortcode($tag,$callback,$description,$parameters=null) ist die empfohlene Art, einen Shortcode zu registrieren – nutzt intern die normale WordPress-Funktion add_shortcode(), wickelt den Callback dabei aber in einen eigenen try/catch. So kann eine unbehandelte Exception oder ein Fehler in EINEM Modul-Shortcode nicht die ganze Seite mit einem PHP-Fatal-Error zum Absturz bringen.
Parameter-Dokumentation
Wird $parameters beim Aufruf nicht mitgegeben, versucht weinhold_resolve_shortcode_parameters() der Reihe nach: einen fest hinterlegten Eintrag im internen Parameter-Katalog (vor allem für die zahlreichen pnp_book_*-Shortcodes des PnP-Book-Moduls, deren Parameter historisch hier statt im jeweiligen Modul gepflegt werden), einen Treffer per normalisiertem Tag-Namen (Umlaute/Akzente werden dabei vereinheitlicht, z. B. pnp_book_effektivitaeten und pnp_book_effektivitäten gelten als derselbe Eintrag), oder das Auslesen eines „Attribute: …“-Hinweises direkt aus der Beschreibung.
Admin-Übersicht
weinhold_render_core_shortcode_page() rendert unter Weinhold → Shortcodes eine alphabetisch sortierte Tabelle aller registrierten Shortcodes mit Tag, Beschreibung und aufgelösten Parametern.
Nur Module, die tatsächlich weinhold_add_shortcode() statt des nativen add_shortcode() nutzen, profitieren vom Error-Handling und tauchen in der Admin-Übersicht auf – ein Modul kann trotzdem direkt add_shortcode() verwenden, verliert dann aber beides. Der Parameter-Katalog enthält deutlich mehr Einträge als aktuell aktive Module Shortcodes registrieren (u. a. alle pnp_book_*-Varianten) – bewusst als zentrale Fallback-Dokumentation gepflegt, unabhängig davon, ob das jeweilige Modul gerade aktiv ist.Besonderheiten
Fehlerbehandlung ist rollenabhängig: Schlägt ein Shortcode fehl, sehen Administratoren (manage_options) die vollständige Fehlermeldung inkl. Datei und Zeile direkt auf der Seite, alle anderen Besucher nur einen neutralen Hinweis ohne technische Details. Der volle Fehler landet zusätzlich immer im PHP-Error-Log.
Versionshistorie
Version Datum Änderung 1.0.0 22.09.2026 Einführung der Versionierung.