diff --git a/includes/statistik-manager.php b/includes/statistik-manager.php
index f3c79fd..376396b 100644
--- a/includes/statistik-manager.php
+++ b/includes/statistik-manager.php
@@ -205,6 +205,16 @@ function statistik_manager_get_statistics() {
// Banner an der richtigen Stelle einhängen – abhängig von der konfigurierten
// Position. Nur wenn das Banner auch wirklich aktiviert ist.
function statistik_manager_register_banner() {
+ // Abstand oben für fixe Leisten (ShiftNav-Menüleiste usw.) wird IMMER
+ // berechnet – auch ohne Banner –, sonst liegt der Seitenkopf darunter.
+ add_action('wp_head', 'statistik_manager_banner_offset');
+
+ // Am Seitenende sofort nachrechnen – dann sind Banner und fixe Leisten
+ // (z. B. ShiftNav) garantiert im DOM, auch wenn DOMContentLoaded spät kommt.
+ add_action('wp_footer', function() {
+ echo '';
+ }, 999);
+
if (!get_option('statistik_manager_banner_enabled', 1)) {
return;
}
@@ -226,58 +236,47 @@ function statistik_manager_get_statistics() {
statistik_manager_display_banner('top');
}, 5);
}
-
- // Abstand für den Seiteninhalt, damit das fixe Banner nichts verdeckt
- add_action('wp_head', 'statistik_manager_banner_offset');
-
- // Am Seitenende sofort nachrechnen – dann sind Banner und fixe Leisten
- // (z. B. ShiftNav) garantiert im DOM, auch wenn DOMContentLoaded spät kommt.
- add_action('wp_footer', function() {
- echo '';
- }, 999);
}
add_action('wp', 'statistik_manager_register_banner');
- // Fügt NUR bei aktivem Banner den passenden Abstand hinzu – auf der richtigen
- // Seite (oben/unten) und mit Rücksicht auf die WordPress-Admin-Leiste.
+ // Sorgt dafür, dass fixe Leisten oben (ShiftNav-Menüleiste) und – falls aktiv –
+ // das Banner keinen Inhalt verdecken. Die WordPress-Admin-Leiste ist per
+ // html-margin bereits berücksichtigt und wird nicht doppelt gezählt.
function statistik_manager_banner_offset() {
- if (!get_option('statistik_manager_banner_enabled', 1)) {
- return;
- }
-
+ $enabled = (bool) get_option('statistik_manager_banner_enabled', 1);
$pos = get_option('statistik_manager_banner_position', 'top');
- $h = 56; // ungefähre Bannerhöhe – nur für den No-JS-Fallback
- // Fallback ohne JavaScript (WordPress verschiebt die Seite für die
- // Admin-Leiste bereits selbst per html-margin, daher hier nicht addieren).
- echo '';
}
- echo '';
- // Mit JavaScript: Banner exakt unter fixe Leisten oben setzen (WP-Admin-Leiste,
- // ShiftNav-Menüleiste), sonst verdecken diese es. Der Inhalt wird nur um die
- // tatsächliche Bannerhöhe verschoben – zusätzlich zum vorhandenen Abstand
- // des Themes, damit das Layout ansonsten unverändert bleibt.
+ // Mit JavaScript: Unterkante der fixen Leisten oben messen, ein Top-Banner
+ // direkt darunter setzen und den Inhalt um Leisten + Banner nach unten
+ // schieben (zusätzlich zum vorhandenen Abstand des Themes).
$is_bottom = ($pos === 'bottom') ? 'true' : 'false';
echo '