Support » Allgemeine Fragen » Top-Bar nur angemeldet sichtbar
Top-Bar nur angemeldet sichtbar
-
Hallo ihr lieben,
nach stundenlanger Suche ohne zufriedenstellendes Ergebnis, dachte ich mir ich frage mal hier nach, in der Hoffnung eine Lösung zu finden.
Ich möchte die Top-Bar samt allen Menü-Punkten nur angemeldeten Nutzern sichtbar machen. Leider habe ich bislang nur eine Möglichkeit gefunden, einzelne Menüpunkte auszublenden – dann hat man wenn man nicht eingeloggt ist einen weißen Balken über dem Hauptmenü, was nicht wirklich gut aussieht.
Gibt es eine Möglichkeit die Top-Bar (inkl. aller Menüpunkte) nur einzublenden, wenn man eingeloggt ist?Ich nutze Elementor + OceanWP
Hoffentlich finde ich hier eine Möglichkeit das umzusetzen.
Vielen Dank für eure Bemühungen im Vorhinein und noch einen schönen Sonntag ☺️
Gruß
Anschar
-
Das geht, wenn du ein Child-Theme erstellst und die WordPress-Funktion is_user_logged_in() verwendest – PHP-Vorkenntnisse vorausgesetzt.
Okay, das wird vermutlich nichts. Hatte auf ein Plugin oder eine einfachere Lösung gehofft. Danke vielmals
Eine einfache Lösung wäre, die Top-Bar mit einer CSS-Regel auszublenden. Das lässt sich aber einfach umgehen – entweder schaut der nicht angemeldete Benutzer in den Quellcode der Webseite, in dem auch der ausgeblendete Teil gezeigt wird oder er fügt über die Entwickler-Tools des Browsers nachträglich eine CSS-Klasse ein, um die Top-Bar doch angezeigt zu bekommen. Wenn du da etwas „geheimes“ ausschließlich registrierten Nutzern zeigen möchtest, ist diese „einfache“ Lösung keine Lösung.
Alternativ wäre es möglich, eine kleine Funktion zu schreiben, um den Hook
ocean_top_bar
in Verbindung mitis_user_logged_in()
zu nutzen. Da es hier aber nicht unser Ziel ist, auf Zuruf Änderungen am Theme vorzunehmen, habe ich mir das nicht mehr im Detail angesehen.Probier mal folgende Funktion:
add_filter( 'ocean_display_top_bar', 'top_bar_users_only' ); function top_bar_users_only() { if( is_user_logged_in() ) { return true; } return; }
Die kannst du entweder im Child-Theme in der
functions.php
anhängen oder du schreibst rasch ein eigenes Plugin. Dazu ergänzt du den Code um einen Plugin-Header …<?php /* * Plugin Name: OceanWP TopBar for Users * Description: Display OceanWP's Top Bar for logged in users only */ if ( ! defined( 'ABSPATH' ) ) { return; } add_filter( 'ocean_display_top_bar', 'top_bar_users_only' ); function top_bar_users_only() { if( is_user_logged_in() ) { return true; } return; }
… packst das in eine Datei
owp_topbar_users
, packst die Datei in ein Verzeichnisowp_topbar_users
, komprimierst das Verzeichnis alsowp_topbar_users.zip
und installierst das Plugin übers Backend deiner Website und aktivierst es.-
Diese Antwort wurde geändert vor 1 Jahr, 2 Monaten von
Bego Mario Garde.
Danke für deine großartige Unterstützung 🙂
Leider bin ich da wohl ne ziemliche niete.Fatal error: Cannot redeclare top_bar_users_only() (previously declared in /var/www/vhosts/imprya-manufaktur.de/huskydays/wp-content/plugins/owp_topbar_users/functions.php:10) in /var/www/vhosts/imprya-manufaktur.de/huskydays/wp-content/plugins/owp_topbar_users/functions.php on line 16
Also ich habe:
1. die functions.php erstellt, die sieht so aus:<?php /* * Plugin Name: OceanWP TopBar for Users * Description: Display OceanWP's Top Bar for logged in users only */ if ( ! defined( 'ABSPATH' ) ) { return; } add_filter( 'ocean_display_top_bar', 'top_bar_users_only' ); function top_bar_users_only() { if( is_user_logged_in() ) { return true; } return false; } add_filter( 'ocean_display_top_bar', 'top_bar_users_only' ); function top_bar_users_only() { if( is_user_logged_in() ) { return true; } return false; }
in einen Order gepackt. Zur ZIP gemacht und hochgeladen.
Was habe ich falsch gemacht? :/
Du hast die Zeilen
add_filter( 'ocean_display_top_bar', 'top_bar_users_only' ); function top_bar_users_only() { if( is_user_logged_in() ) { return true; } return false; }
jetzt doppelt.
Das hat geklappt. Vielen lieben Dank!
Dann hoffe ich, dass du jetzt ein Plugin erstellt hast, weil
<?php /* * Plugin Name: OceanWP TopBar for Users * Description: Display OceanWP's Top Bar for logged in users only */ if ( ! defined( 'ABSPATH' ) ) { return; }
nicht in die
functions.php
gehört.Habe ein Plugin erstellt 👍 funktioniert Top. Vielen Dank! Schönen Sonntag noch
@pixolin die Top bar wird auf der mobile Ansicht immernoch angezeigt. Wie müsste ich das anpassen, damit es auch mobil seine Wirkung hat? Viele Grüße und vielen Dank
Dass du in der mobilen Ansicht die Top-Bar noch siehst, wird mit dem Browser-Cache des Smartphones zu tun haben.
-
Diese Antwort wurde geändert vor 1 Jahr, 2 Monaten von
- Das Thema „Top-Bar nur angemeldet sichtbar“ ist für neue Antworten geschlossen.