Custom Header
Das Custom-Header-Modul ermöglicht die Erstellung eines vollwertigen Headers mit Navigationsbuttons und frei definierbarem HTML â komplett ĂŒber das Admin-Dashboard, ohne Theme-Anpassungen. Den Header, den du gerade auf weinify.de siehst, wurde mit diesem Modul gebaut.
Allgemein
Buttons & Drag and Drop
Buttons werden ĂŒber den Platzhalter –buttons– an einer beliebigen Stelle im Header-Inhalt eingefĂŒgt. Die Reihenfolge lĂ€sst sich per Drag & Drop anpassen. Buttons können Sub-Buttons enthalten, die beim Hover ein Dropdown-MenĂŒ öffnen. Pro Button lĂ€sst sich auĂerdem die Sichtbarkeit festlegen: immer, nur fĂŒr eingeloggte oder nur fĂŒr ausgeloggte Besucher.
Login-Navigation per Platzhalter
ZusĂ€tzlich zu –buttons– gibt es den Platzhalter –auth–, der an dieser Stelle die Login/Profil-Navigation des Benutzerverwaltung-Moduls einfĂŒgt (identisch zum Shortcode weinhold_auth_nav). Nur im Header verfĂŒgbar, nicht im Footer.
Pro Site, kein Shortcode
Jede Subsite konfiguriert ihren eigenen Header unabhĂ€ngig. Inhalt, Buttons und Styling sind vollstĂ€ndig voneinander getrennt â dkj.weinify.de kann einen völlig anderen Header haben als weinify.de. Der Header wird automatisch in jede Seite der jeweiligen Subsite eingebunden, sobald er im Dashboard konfiguriert und aktiviert wurde. Kein Shortcode nötig.
Social-Vorschau
Unter den Header-Einstellungen gibt es einen eigenen Abschnitt âSocial-Vorschauâ. Er legt fest, welches Bild, welchen Titel und welche Beschreibung Discord, WhatsApp, Signal & Co. anzeigen, wenn ein Link zur Subsite geteilt wird (Open Graph und Twitter Card im Seitenkopf). Das Bild wird aus der Mediathek gewĂ€hlt, empfohlen sind 1200 Ă 630 Pixel. Unterseiten verwenden ihren eigenen Titel, ein gesetztes Beitragsbild und einen bewusst geschriebenen Auszug. Ohne eigene Angaben greifen Titel, Untertitel und Website-Icon der Subsite. Optional wird die Beschreibung zusĂ€tzlich als Meta-Beschreibung fĂŒr Suchmaschinen ausgegeben.
Dateien
modules/custom_header.php â Modul-Datei (Init, Admin-Seite, Cleanup) und die komplette Social-Vorschau (nur Header). Die Header-Ausgabe selbst delegiert sie an das gemeinsam mit Custom Footer genutzte includes/weinhold_custom_layout_helpers.php.
FĂŒr Entwickler
Gemeinsamer Unterbau mit Custom Footer
Header und Footer sind keine zwei getrennten Implementierungen, sondern dieselbe Logik in includes/weinhold_custom_layout_helpers.php, parametrisiert ĂŒber $layout (‚header‘ oder ‚footer‘). weinhold_custom_layout_get_config($layout) liefert dazu Hook-Name (wp_head bzw. wp_footer), HTML-Tag, ob der –auth—Platzhalter unterstĂŒtzt wird (nur Header) und die Ăffnungsrichtung der Sub-Button-MenĂŒs.
Speicherung (Optionen pro Site)
Option Inhalt weinhold_custom_header_enabled Ob der Header aktiv ausgegeben wird weinhold_custom_header_html Der HTML-Inhalt mit den Platzhaltern âbuttonsâ / âauthâ weinhold_custom_header_links Array der Buttons (Beschriftung, Ziel-URL, ĂŒbergeordneter Button fĂŒr Sub-Buttons, Sichtbarkeit) weinhold_custom_header_social_settings Social-Vorschau: enabled, image_id, title, description, prefer_featured, output_description
Beim Footer entsprechend mit dem PrÀfix weinhold_custom_footer_* (ohne Social-Vorschau).
Wichtige Funktionen
Funktion Beschreibung weinhold_custom_layout_init($layout) HĂ€ngt den Render-Callback an wp_head bzw. wp_footer, baut das Button-HTML inkl. Sub-Buttons zusammen weinhold_custom_layout_resolve_link_url($value) Löst Spezial-Tokens in Button-Zielen auf (z. B. Links auf Auth-Seiten) weinhold_custom_layout_sanitize_html($html) Bereinigt gespeichertes HTML ĂŒber eine eigene, erweiterte Erlaubnisliste (weinhold_custom_layout_allowed_html()) weinhold_custom_layout_get_button_visibility_class($link) Ăbersetzt die Sichtbarkeitseinstellung eines Buttons in die CSS-Klasse weinhold-show-on-login bzw. weinhold-show-on-logout weinhold_custom_header_render_social_preview() Gibt die Open-Graph- und Twitter-Card-Angaben an wp_head (PrioritĂ€t 5) aus weinhold_custom_header_social_get_meta($settings) Ermittelt Titel, Beschreibung, URL und Typ der aktuellen Seite weinhold_custom_header_social_get_image($settings) WĂ€hlt Beitragsbild, Standardbild oder Website-Icon samt GröĂe
Die Sichtbarkeitsklassen greifen auf dieselbe CSS-Logik zurĂŒck, die auch die Shortcodes weinhold_show_on_login/weinhold_show_on_logout des Benutzerverwaltung-Moduls nutzen (weinhold_user_management_render_visibility_css()).
RĂŒckwĂ€rtskompatibel gespeicherte Buttons: Ă€ltere Buttons ohne das neue visibility-Feld werden ĂŒber das frĂŒhere boolesche Feld login_only interpretiert, statt beim Update verloren zu gehen. Freies HTML ohne Whitelisting von Grund auf â erlaubt sind bewusst mehr Tags/Attribute als WordPress‘ Standard-Editor zulĂ€sst (eigene erweiterte Erlaubnisliste), damit auch komplexere Layout-Strukturen im Header/Footer möglich sind. Die Social-Vorschau hat einen eigenen Schalter (standardmĂ€Ăig aus) und wirkt unabhĂ€ngig davon, ob der Header angezeigt wird, auch auf Auth-Seiten. Ist ein SEO-Plugin aktiv (Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework), gibt sie nichts aus, damit keine doppelten Angaben entstehen. Die Beschreibung von Unterseiten stammt nur aus einem gesetzten Auszug, nie aus dem gekĂŒrzten Inhalt, weil der Shortcodes oder geschĂŒtzte Texte enthalten kann.Besonderheiten
Wird auf Auth-Seiten (Login, Registrierung, Profil, Passwort-vergessen) automatisch unterdrĂŒckt â weinhold_user_management_is_auth_page() prĂŒft das vor jeder Ausgabe, damit der eigene Header/Footer die dortigen Formulare nicht stört.
Versionshistorie
Version Datum Ănderung 1.0.1 28.10.2026 Social-Vorschau (Open Graph, Twitter Card) mit Bild aus der Mediathek, Titel und Beschreibung. 1.0.0 22.09.2026 EinfĂŒhrung der Versionierung.