custom-header


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)


OptionInhalt
weinhold_custom_header_enabledOb der Header aktiv ausgegeben wird
weinhold_custom_header_htmlDer HTML-Inhalt mit den Platzhaltern –buttons– / –auth–
weinhold_custom_header_linksArray der Buttons (Beschriftung, Ziel-URL, übergeordneter Button für Sub-Buttons, Sichtbarkeit)
weinhold_custom_header_social_settingsSocial-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


FunktionBeschreibung
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()).

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.

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.

Versionshistorie

VersionDatumÄnderung
1.0.128.10.2026Social-Vorschau (Open Graph, Twitter Card) mit Bild aus der Mediathek, Titel und Beschreibung.
1.0.022.09.2026Einführung der Versionierung.