Support » Allmänna frågor » Skapa conditional menu med egen kod

  • Hej,

    jag hittade en bit kod för att skapa conditional menu för huvudmenyn (en för utloggad och en för inloggad). Problemet är när jag först kopierade in den i functionsfilen så byttes även footermenyn ut mot huvudmenyn av någon konstig anledning… så jag klurade lite på det och ändrade en liten detalj – nämligen namnet för menyn som skulle träffas. Jag hittade namnet genom inspectfunktionen i min webbläsare och kollade huvudmenyns class name. Ingen aning om detta är felaktigt eller dåligt sätt att göra det på och skulle gärna höra vad ni säger? Koden jag använder nu som verkar funka:

    //Conditional main menues
    function my_wp_nav_menu_args( $args = '' ) {
    if( is_user_logged_in() ) {
    // Logged in menu to display
    $args['main-menu'] = 251;
     
    } else {
    // Non-logged-in menu to display
    $args['main-menu'] = 158;
    }
    return $args;
    }
    add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );

    $args[’main-menu’] var först bara $args[’menu’]

    Tack på förhand. MVH/Flamur

    • Detta ämne redigerades för 1 månad sedan av flamuren.
Visar 1 svar - 1 till 3 (av 3 totalt)
  • Moderator tobifjellner (Tor-Bjorn Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Om det funkar så är det väl ok.
    Om du lagt in detta i functions.php för något tema som förr eller senare riskerar att uppdateras automatiskt ska du tänka på att alla ändringar du gjort i temats filer försvinner när temats katalog töms och sedan återfylls med filerna för den nya versionen.
    Du kan alltså behöva lägga detta i ett barntema eller i ett eget litet tillägg i stället.

    Trådstartare flamuren

    (@flamuren)

    Hej,

    tusen tack för svaret 🙏 Ja det funkar – men då jag inte kan kod utan bara hittade koden när jag googlade och kopierade rakt av så tänkte jag att det är bäst att fråga här om det är korrekt att använda den. Jag vet inte vad add_filter betyder eller vad functions namnet gör osv 🙈 Ibland går ju kod att skriva bättre så att säga (har jag lärt mig) 😅

    Det ligger i barntemats function fil 🙂👍

    Moderator tobifjellner (Tor-Bjorn Fjellner)

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    WordPress fungerar så att functions.php och alla aktiva tillägg anropas och körs innan WordPress-snurran över huvud taget börjar ”bygga” den begärda sidan.

    Sättet man flikar in olika ändringar i innehållet är då att man så att säga ”deklarerar” det man vill utföra och kopplar det till olika s.k. ”hooks”. Det finns två typer av hooks: åtgärds-hook är en möjlighet att få sin programsnutt anropad vid en viss plats i ”byggprocessen”, t.ex. om man behöver smyga in lite HTML-kod mellan taggarna ”head” i HTML-dokumentet; filter är den andra typen av hook, som låter olika tilläggsfunktioner anpassa innehåll. Detta kan du t.ex. använda för att ändra vissa parametrar eller kanske lägga till en liten extra textsnutt i slutet av varje inlägg. Eventuella deklarerade filter körs sedan vid rätt tillfälle i byggprocessen och de får då ta emot det förberedda innehållet och har möjlighet att anpassa det.

Visar 1 svar - 1 till 3 (av 3 totalt)
  • Du måste vara inloggad för att svara på detta ämne.