• Hallo,

    Momenteel ben ik met een website bezig waar ik graag een deel van mijn menu items achter een login zou willen plaatsen.
    Nu heb ik dit inmiddels gedaan door berichten in een pulldownmenu te plaatsen en dit te beveiligen met een wachtwoord.

    Dit gaat mij eigenlijk niet ver genoeg.
    Zoekwerk op internet heeft me nog niet verder gebracht, vandaar dat ik de vraag hier stel.

    Wat zou ik graag willen?
    Het onderstaande zou (fictief) zichtbaar moeten zijn als een bezoeker op de website komt:
    Home | Verenigingsinformatie | Foto Albums | Links | Contact

    Als een lid inlogt op de website zou het volgende (fictief) zichtbaar moeten zijn:
    Home | Verenigingsinformatie | Foto Albums | Links | Contact | Leden

    Zoals te zien komt er een menu item bij (Leden).
    Is er iemand die mij kan uitleggen hoe ik dit voor elkaar kan krijgen, of dat hier een plugin voor bestaat?

9 reacties aan het bekijken - 1 tot 9 (van in totaal 9)
  • Thread starter Ruud Engels

    (@ruud-engels)

    Dank je wel voor de reactie.
    Ik ga eens kijken of ik er uit ga komen.

    Thread starter Ruud Engels

    (@ruud-engels)

    Ik ben even aan het zoeken geslagen, maar ik denk dat ik enkele zaken door elkaar haal, vandaar dat ik toch nog wat ondersteuning nodig heb.

    Allereerst wat info over de website.
    Ik heb de website hier staan.
    Ik gebruik een Elegant Theme: Chameleon

    In mijn template bestanden vind ik het bestand header.php de volgende code terug:

    <?php $menuClass = 'nav';
    			$menuID = 'top-menu';
    			$primaryNav = '';
    			if (function_exists('wp_nav_menu')) {
    				$primaryNav = wp_nav_menu( array( 'theme_location' => 'primary-menu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => $menuID, 'echo' => false ) );
    			};
    			if ($primaryNav == '') { ?>
    				<ul id="<?php echo esc_attr($menuID); ?>" class="<?php echo esc_attr($menuClass); ?>">
    					<?php if (get_option('chameleon_home_link') == 'on') { ?>
    						<li <?php if (is_home()) echo('class="current_page_item"') ?>><a href="<?php bloginfo('url'); ?>"><?php esc_html_e('Home','Chameleon') ?></a></li>
    					<?php }; ?>
    
    					<?php show_page_menu($menuClass,false,false); ?>
    					<?php show_categories_menu($menuClass,false); ?>
    				</ul> <!-- end ul#nav -->
    			<?php }
    			else echo($primaryNav); ?>

    Kan iemand mij vertellen waar ik dan de volgende code moet plaatsen:

    <?php
    if ( is_user_logged_in() ) {
         wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) );
    } else {
         wp_nav_menu( array( 'theme_location' => 'logged-out-menu' ) );
    }
    ?>

    Moet ik vervolgens ’theme_location’ wijzigen in ’top-menu’ of ‘primary-menu’ of moet ik het ongewijzigd laten?
    Ik neem aan dat ik twee soorten menu’s moet aanmaken Weergave > Menu’s.
    1 Menu met bijv. de naam: Leden
    1 Menu met bijv. de naam: Bezoekers
    Die namen verwacht ik dat op de plaatsen van ‘logged-in-menu’ en ‘logged-out-menu’.

    Moet ik nog ergens anders iets aanpassen/wijzigen?

    Ik hoor graag of ik op de goede weg zit en zou graag een paar aanwijzingen ontvangen om dit werkend te krijgen.

    Groeten Ruud

    @ruud, ik denk dat je de code gewoon ergens in de header.php kunt zetten, maar dat je onder Weergave –> Menu’s twee verschillende menu’s maakt. Één heet ‘logged-in-menu’ en de ander ‘logged-out-menu’. Ik denk dat het dan werkt. Ik heb het zelf nog nooit gedaan, dus probeer het uit zal ik zeggen :).

    Thread starter Ruud Engels

    (@ruud-engels)

    Dat had inderdaad al uitgeprobeerd, helaas zonder het gewenste resultaat.
    Ik ben er al even mee aan het stoeien/uitproberen, maar ik zie op dit moment gewoon iets over het hoofd.
    Probleem ligt hem dus eerder bij mij dan aan iets anders.
    Maar ik zou het wel graag voor elkaar krijgen 🙂

    Thread starter Ruud Engels

    (@ruud-engels)

    Inmiddels heb ik via het forum van Elegant Themes ook de vraag gesteld.
    Hier kreeg ik de volgende oplossing:

    Achter:
    else echo($primaryNav); ?>

    Moest ik de volgende code plakken en de url aanpassen:

    <?php if ( is_user_logged_in()  ) { ?>
    <ul id="members_menu">
         <li><a href="http://MEMBERS_AREA_URL_GOES_HERE.com">Members Area</a></li>
    <ul>
    <?php } ?>

    Helaas krijg ik dan een syntax error op het moment dat ik de website open.

    Ik heb het gevoel dat ik er toch wel bij in de buurt zit wat betreft een oplossing, maar een duwtje in de rug zou ik niet erg vinden 🙂

    Thread starter Ruud Engels

    (@ruud-engels)

    Hallo,

    Vanavond toch weer even met de code gespeeld die ik had gekregen.
    Inmiddels heb ik deze enigszins aangepast waardoor het werkt dat ik bij het inloggen een menu item te zien krijg en dat dit menu item bij uitloggen ook weer verdwijnt. Mooi zou je zeggen!

    Toch zit er nog een maar aan. Op dit moment komt het woord “Leden” voor de “Home” button te staan iets wat niet wenselijk is.
    Van mij mag “Leden” of direct na de “Home” button komen te staan, of helemaal op het einde van het navigatie menu.

    Ik heb de volgende code nu in mijn header.php staan op de plaats zoals in mijn vorige bericht vermeld:

    <?php if ( is_user_logged_in()  ) { ?>
    <ul id="<?php echo esc_attr($menuID); ?>" class="<?php echo esc_attr($menuClass); ?>">
         <a href="http://www.fotogroep-luminos.nl/leden/">Leden</a></li>
    <ul>
    <?php } ?>

    Is er iemand die mij misschien kan vertellen of ik ergens code moet aanpassen/toe moet voegen om er voor te zorgen dat het woord “Leden” direct na “Home” komt te staan of altijd helemaal achteraan in het navigatie menu als ik inlog?

    Alvast bedankt voor de moeite.

    Beste Ruud,
    Ik zoek precies hetzelfde voor mijn vereniging.
    Ben je al iets verder? Ik merk dat het wat stil wordt en jij er blijkbaar ALLEEN mee stoeit.
    Groet, Macpieter

9 reacties aan het bekijken - 1 tot 9 (van in totaal 9)
  • Het onderwerp ‘Navigatiemenu gedeeltelijk achter login verbergen’ is gesloten voor nieuwe reacties.