Hallo,
ich habe auf meiner Website eine Bildergallerie die ich nur registrierten Benutzer zugänglich machen möchte. Hierzu habe ich mir jetzt schon mal den Role-Manager runtergeladen und PHP Code gefunden der die Userlevel abfragt
<?php if (is_page('12')) {
global $user_level; if ($user_level > 0) { ?>
<?php echo "angemeldet mit Level grösser 0"; ?>
<?php } else { ?>
<?php echo "abgemeldet"; ?>
<?php } } ?>
Das ist der Code aus der Header.php der für das Menü zuständig ist. Wie müsste ich das Anpassen, das eben nur registrierte Benutzer die Bildergalerie im Menü sehen?
<div id="header">
<h1><a href="<?php echo get_settings('home'); ?>/"><?php bloginfo('name'); ?></a></h1>
<p class="description"><?php bloginfo('description'); ?></p>
<ul class="menu">
<li class="<?php if ( is_home() or is_archive() or is_single() or is_paged() or is_search() or (function_exists('is_tag') and is_tag()) ) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php echo get_settings('home'); ?>/"><?php echo get_option('k2blogornoblog'); ?></a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li='); ?>
<?php wp_register('<li class="admintab">','</li>'); ?>
</ul>
</div>
Gruß
Andreas
Bestimmte Menüpunkte ausblenden wenn nicht registriert
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
Du schließt die Bildergalerie bei wp_list_pages aus und hängst sie hinten dran
PHP<?php wp_list_pages('sort_column=menu_order&depth=1&exclude=4&title_li='); ?> <?php if($user_ID) echo '<li class="page_item"><a href="'.get_the_permalink('4').'" title="Bildergalerie">Bildergalerie</a></li>';Gruß Jeriko
-
Danke für die schnelle Antwort.
Es funktioniert aber leider nicht richtig.
<?php wp_list_pages('sort_column=menu_order&depth=1&exclude=4&title_li='); ?>
<?php if($user_ID) echo '<li class="page_item"> <a href="'.get_the_permalink('4').'" title="Bildergalerie"> Bildergalerie </a></li>'; ?>
Die Bildergalerie wird jetzt gar nicht mehr angezeigt, egal ob angemeldet oder nicht.
Gruß
Andreas -
Ich habs mir jetzt doch anders überlegt. Der nicht registrierte Benutzer sieht ja gar nicht was er verpasst. Daher ist es wohl besser, den Menüpunkt anzuzeigen und beim Klick darauf statt des normalen Inhalts (die Bildergalerie) einen Hinweis auf das Registrieren zu schreiben. (und/oder gleich das Registrieren-Formular anzuzeigen)
Ich müsste dann in jeder geschützten Seite folgendes Einfügen
<?php if (is_page('12')) {global $user_level; if ($user_level > 0) { ?>
<?php echo "Inhalt wenn registriert/angemeldet"; ?>
<?php } else { ?>
<?php echo "du bist nicht registriert bzw. noch nicht angemeldet"; ?>
<?php } } ?>
Wie bekommen ich bitte dieses "is_pages('12') raus? Möchte ja nicht jedes mal die Page-ID anpassen. Es soll einfach auf jeder Seite in der der Code steht die Abfrage auf den User-Level stattfinden. Oder gibt es noch eine andere/einfachere Möglichkeit den Userlevel auf bestimmten Seiten abzufragen?
Danke und Gruß
Andreas
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!