Skip to content

Allt om WordPress, webbutveckling — och mer därtill

🔐 Inloggnings- och utloggningsknapp i WordPress-meny: en steg-för-steg-guide 2026

🔐 Inloggnings- och utloggningsknapp i WordPress-meny: en steg-för-steg-guide 2026

Standard WordPress kan inte visa en "Logga in"-knapp för utloggade besökare och en "Logga ut"-knapp för inloggade användare på samma menyplats. Vid första anblicken verkar detta obetydligt. Men för en webbplats med medlemsdashboard, medlemsområde eller forum är det ett grundläggande behov, och utan det förvandlas navigeringen till en gissningslek.

Tidigare hanterade tillägget BAW Login/Logout Menu denna uppgift. Utvecklaren lade ner projektet 2025, vilket lämnade tusentals webbplatser utan uppdateringar. Dess direkta efterföljare har tagit över: Login or Logout Menu Item med över 20 000 aktiva installationer och betyget 4,8 på WordPress.org.

Vi har samlat allt i en guide: från att installera tillägget på två minuter till anpassade rollbaserade omdirigeringar och inaktivering av adminfältet för vanliga användare.

💡 Snabb översikt:

  • Installera tillägget Login or Logout Menu Item och konfigurera tre omdirigeringsfält
  • Lägg till ett "Login|Logout"-menyalternativ via den klassiska eller blockredigeraren
  • Ställ in finjusterad logik via functions.php-snuttar: rollbaserade omdirigeringar, utloggning utan bekräftelse, ersättning av wp-login.php
  • Dölj adminfältet för vanliga användare och blockera deras åtkomst till wp-admin

Metod 1: Login or Logout Menu Item-tillägget, snabbt och kodfritt

Inställningssida för Login or Logout Menu Item-tillägg i WordPress admin

Det enklaste sättet att lägga till en dynamisk inloggnings- och utloggningsknapp är tillägget Login or Logout Menu Item. Det är den direkta efterföljaren till BAW Login/Logout Menu, skrivet från grunden av en av originalprojektets bidragsgivare. I juni 2026 har tillägget över 20 000 aktiva installationer, 23 recensioner och 4,8 stjärnor i betyg. Version 1.3.2 har testats upp till WordPress 7.0.

Varför detta tillägg istället för en kodlösning? Tillägget rör inte functions.php och går inte sönder när du byter tema. Det stöder blockredigeraren, och "Login|Logout"-objektet kan läggas till i ett navigeringsblock via vanlig sökning. Det har också en dedikerad inställningssida: inga magiska webbadresser i menyfält, allt är transparent.

Installation och konfiguration

Installera tillägget på standardvägen: Tillägg → Lägg till nytt, skriv Login or Logout Menu Item, klicka på Installera och Aktivera. Efter aktivering visas ett nytt objekt i adminmenyn: Inställningar → Login or Logout. Det finns tre fält, och här är vad de betyder:

  • Login Page URL: adressen till inloggningssidan. För de flesta webbplatser räcker /wp-login.php. Om du använder en anpassad inloggningssida (till exempel /login/ via MemberPress eller WooCommerce), ange den här.
  • Login Redirect URL: dit användaren hamnar efter inloggning. Vanligtvis /account/ eller helt enkelt / för startsidan. Observera att medlemstillägg som MemberPress eller Restrict Content Pro kan åsidosätta denna omdirigering med sina egna inställningar.
  • Logout Redirect URL: vart användaren skickas efter utloggning. Att ange / eller /wp-login.php är vettigt.

Lägga till menyalternativet

Gå till Utseende → Menyer. Klicka på Skärmalternativ i det övre högra hörnet och kontrollera att kryssrutan Login/Logout är aktiverad. Ett "Login/Logout"-block visas i den vänstra kolumnen; markera Login|Logout och klicka på Lägg till i meny.

Menyalternativet visas i listan. Dess URL ska förbli #lolmiloginout# eftersom detta är tilläggets trigger; ändra den inte. Du kan redigera navigeringsetiketten: till exempel "Logga in | Logga ut" eller "Mitt konto". Spara menyn.

Om du arbetar med blockredigeraren (Utseende → Redigerare, navigeringsblock): klicka på "+" för att lägga till en länk, skriv "login" eller "logout" i sökningen och välj "Login|Logout" från förslagen. Länken läggs till automatiskt med rätt URL. Du kan också ange den manuellt: #lolmiloginout#.

Vad du ska göra om menyn inte växlar

Den vanligaste orsaken är cachning. Inaktivera cache för inloggade användare i ditt cachningstilläggs inställningar: WP Rocket, Cloudflare APO, LiteSpeed. Den andra orsaken är att ett annat tillägg fångar upp omdirigeringen. Kontrollera inställningarna för ditt medlems- eller säkerhetstillägg: många av dem har egna regler för omdirigering efter inloggning som tar prioritet.

Metod 2: inloggning och utloggning via kod i functions.php

Tillägget täcker de flesta typiska scenarier. Men ibland behöver du mer detaljerad logik: olika omdirigeringar för olika roller, tvingad utloggning utan bekräftelse, döljande av adminfältet. Det är här functions.php kommer in.

Lägg till all kod nedan via tillägget Code Snippets; detta är säkrare än att redigera functions.php direkt. Ett syntaxfel kraschar inte webbplatsen; det inaktiverar bara snutten.

Inloggning med rollbaserad omdirigering

Denna kod omdirigerar administratörer till adminpanelen och alla andra till en medlemskontosida. Lägg till den i Code Snippets eller i ditt barntemas functions.php.

1/**
2 * Redirect after login: admin → wp-admin, others → /account
3 */
4function sd_redirect_by_role( $url, $request, $user ) {
5 if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
6 if ( $user->has_cap( 'administrator' ) ) {
7 $url = admin_url();
8 } else {
9 $url = home_url( '/account' );
10 }
11 }
12 return $url;
13}
14add_filter( 'login_redirect', 'sd_redirect_by_role', 10, 3 );

Hur det fungerar: filtret login_redirect körs vid inloggningsögonblicket. Funktionen kontrollerar rollen via has_cap('administrator') och returnerar lämplig URL. Prioritet 10 är standard, och 3 begränsar antalet accepterade argument. Om din kontosidas slug skiljer sig från /account, ersätt den i raden home_url('/account').

Utloggning utan bekräftelse

Som standard visar WordPress en bekräftelsesida när du klickar på en utloggningslänk: "Är du säker på att du vill logga ut?" På mobila enheter är detta särskilt irriterande. Här är kod som tar bort bekräftelsen:

1/**
2 * Logout without confirmation, redirect to home
3 */
4add_action( 'check_admin_referer', 'sd_logout_without_confirm', 10, 2 );
5function sd_logout_without_confirm( $action, $result ) {
6 if ( $action === 'log-out' && ! isset( $_GET['_wpnonce'] ) ) {
7 $redirect_to = isset( $_REQUEST['redirect_to'] )
8 ? $_REQUEST['redirect_to']
9 : home_url( '/' );
10 $location = str_replace( '&', '&', wp_logout_url( $redirect_to ) );
11 header( "Location: $location" );
12 die;
13 }
14}

Innan du lägger till detta, gör en fullständig säkerhetskopia av webbplatsen. Funktionen fångar upp nonce-kontrollen under utloggning och utför omdirigeringen omedelbart, förbi bekräftelsesidan. Testa den efter installationen: öppna your-domain/wp-login.php?action=logout i inkognitoläge; du bör omdirigeras till startsidan utan en mellanliggande skärm.

Vissa säkerhetstillägg (Wordfence, Solid Security) åsidosätter utloggningsbeteendet. Om bekräftelsen fortfarande visas, inaktivera deras "bekräfta utloggning"-alternativ eller lägg till URL:en /wp-login.php?action=logout i vitlistan.

Scenario: anpassad inloggningssida istället för wp-login.php

Om du har ersatt den vanliga inloggningssidan med en anpassad (till exempel via MemberPress eller WooCommerce), behöver du omdirigera direktåtkomst till wp-login.php:

1/**
2 * Replace wp-login.php with custom login page
3 */
4add_action( 'init', 'sd_custom_login_page' );
5function sd_custom_login_page() {
6 global $pagenow;
7 if ( ! is_user_logged_in() && 'wp-login.php' === $pagenow ) {
8 wp_redirect( home_url( '/login' ) );
9 exit;
10 }
11}

Ersätt /login med din inloggningssidas slug. Detta är användbart när du använder ett medlemsdashboardtillägg och inte vill exponera standardformuläret för WordPress.

Hur man döljer adminfältet för alla utom administratörer

WordPress adminfält högst upp på webbplatsen är bara användbart för dem som hanterar webbplatsen. Vanliga användare behöver det inte, och det rörar till gränssnittet, särskilt om du bygger en medlemsdashboard med en ren design.

Inaktivera adminfältet via kod

Lägg till detta i Code Snippets eller ditt barntemas functions.php:

1/**
2 * Hide admin bar for everyone except administrators
3 */
4add_action( 'after_setup_theme', 'sd_remove_admin_bar_for_non_admins' );
5function sd_remove_admin_bar_for_non_admins() {
6 if ( ! current_user_can( 'administrator' ) && ! is_admin() ) {
7 show_admin_bar( false );
8 }
9}

Funktionen current_user_can('administrator') kontrollerar rollen, och ! is_admin() säkerställer att fältet förblir synligt i själva adminområdet, där alla med åtkomst behöver det.

Blockera åtkomst till wp-admin

Att dölja fältet räcker inte. Du måste också blockera åtkomst till /wp-admin/ för dem som inte behöver det:

1/**
2 * Block access to wp-admin for non-administrators
3 */
4add_action( 'admin_init', 'sd_block_wp_admin_for_non_admins' );
5function sd_block_wp_admin_for_non_admins() {
6 if ( ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
7 wp_redirect( home_url( '/restrict_user' ) );
8 exit;
9 }
10}

Villkoret DOING_AJAX är kritiskt: utan det blockerar du AJAX-förfrågningar från medlemsdashboardtillägg som användare behöver köra från sin profil. Ersätt sidan /restrict_user med valfri platshållarsida, till exempel startsidan eller en sida med ett "Åtkomst nekad"-meddelande.

⁉️🤔 Vanliga frågor

Tillägget Login or Logout Menu Item fungerar inte med PHP 8.0, vad ska jag göra?

Det finns en negativ recension på WordPress.org om inkompatibilitet med PHP 8.0 från januari 2026. Tillägget har dock testats upp till WP 7.0, och över 20 000 aktiva installationer bekräftar stabil drift på moderna PHP-versioner. Om du stöter på ett fel: kontrollera tilläggets version (bör vara 1.3.2), inaktivera andra omdirigeringstillägg, rensa cachen. På en testsajt med PHP 8.2 hittades inga problem.

Kan jag göra detta utan ett tillägg, med enbart kod?

Ja. Metod 2 i denna artikel täcker fullständigt inloggning, utloggning och omdirigeringar via functions.php. Tillägget är bekvämare: inställningar från adminpanelen utan att redigera filer, stöd för blockredigeraren, automatiska uppdateringar. Om webbplatsen är enkel och du bara behöver en inloggnings- och utloggningsknapp, använd tillägget. Om logiken är komplex (olika omdirigeringar per roll, flera inloggningssidor), använd kod.

Vad ska jag göra om menyalternativet inte visas i blockredigeraren?

I navigeringsblocket, klicka på "+" och skriv "login" i sökningen (inte "lolmiloginout"). Om objektet inte visas, kontrollera att tillägget är aktivt och att din WordPress-version är 6.0 eller högre. För äldre teman utan blockredigeraren, använd det klassiska gränssnittet under Utseende → Menyer.

Hur ställer jag in omdirigeringar för olika roller via tillägget?

Login or Logout Menu Item skiljer inte på roller; det utför en omdirigering för alla användare. För rollbaserade omdirigeringar, använd koden från Metod 2: funktionen sd_redirect_by_role fungerar även om menyalternativet lades till via tillägget. Filtret login_redirect körs efter tilläggets omdirigering och åsidosätter den.

Varför visas utloggningsbekräftelsesidan fortfarande?

Vissa säkerhetstillägg (Wordfence, Solid Security) åsidosätter utloggningsbeteendet på sin egen nivå. Inaktivera deras alternativ för utloggningsbekräftelse eller lägg till utloggnings-URL:en i vitlistan. Koden från Metod 2 körs före de flesta tillägg, men inte alla; i sällsynta fall kan du behöva konfigurera själva säkerhetstillägget.

Hur skiljer sig WP-Recall från Login or Logout Menu Item?

WP-Recall är ett fullfjädrat medlemsdashboardtillägg: profiler, privata meddelanden, grupper, handelsmoduler. Inloggning och utloggning är inbyggda som en del av ekosystemet. Login or Logout Menu Item löser exakt en uppgift: en dynamisk inloggnings-/utloggningsknapp i menyn. Om du behöver en komplett medlemsdashboard med många funktioner, titta på WP-Recall eller MemberPress. Om du bara behöver en knapp i menyn är Login or Logout Menu Item lättare och för inte med sig extra bagage.

Vad du ska använda på din webbplats: tillägg eller kod

Den snabba lösningen för en typisk webbplats är tillägget Login or Logout Menu Item. Installera det, fyll i tre fält i Inställningar, lägg till menyalternativet. Allt fungerar på fem minuter. Tjugo tusen aktiva installationer och kompatibilitet med WP 7.0 bekräftar att verktyget är moget och underhållet.

Om din inloggningslogik är icke-trivial (olika omdirigeringar för olika roller, integration med ett medlemstillägg, anpassad inloggningssida), använd koden från Metod 2. Den är mer flexibel men kräver försiktighet. Skriv kod via Code Snippets, inte direkt i temafil. Ett enda skrivfel i functions.php och webbplatsen går ner.

En kombination av tillägget för menyn och kod för omdirigeringar är den kompromiss vi använder på de flesta projekt. Tillägget ger bekväm hantering av menyalternativ och stöd för blockredigeraren. Anpassad kod hanterar specifika roll- och omdirigeringskrav utan att komplicera tilläggets inställningar.

Välj baserat på din uppgift, inte någon annans checklista. För en enkel webbplats med ett medlemsområde räcker tillägget. För en marknadsplats eller utbildningsplattform är kod nödvändigt. Oavsett vilket, ta en säkerhetskopia innan du gör ändringar och testa på en staging-kopia.