📌 خلاصه مطلب (TL;DR)
- روش ساده: لینک سفارشی با آدرس
wp-login.php?action=logout - روش حرفهای: کد PHP با تابع
wp_logout_url()برای نمایش پویا - روش بدون کد: افزونه Login Logout Menu
- ریدایرکت: افزودن
&redirect_to=URLبرای هدایت پس از خروج - نکته امنیتی: لینک خروج باید فقط به کاربران لاگینشده نمایش داده شود

آیا سایت وردپرسی با سیستم عضویت دارید؟ از bbPress، WooCommerce، LMS یا هر سیستم لاگین دیگری استفاده میکنید؟ در این صورت، قرار دادن لینک خروج (Logout) در منوی سایت برای تجربه کاربری بهتر ضروری است.
کاربرانی که نتوانند به راحتی از حساب خود خارج شوند، ممکن است بدون Logout مرورگر را ببندند. این کار:
- ریسک امنیتی ایجاد میکند (Session سرقتی)
- تجربه کاربری را خراب میکند
- اعتماد کاربران را کاهش میدهد
۴ روش اضافه کردن لینک خروج به منوی وردپرس
| روش | سطح دشواری | نیاز به کد | نمایش پویا |
|---|---|---|---|
| لینک سفارشی در منو | ⭐ آسان | ❌ خیر | ❌ خیر |
| افزونه Login Logout Menu | ⭐ آسان | ❌ خیر | ✅ بله |
| کد PHP در functions.php | ⭐⭐ متوسط | ✅ بله | ✅ بله |
| شورتکد سفارشی | ⭐⭐ متوسط | ✅ بله | ✅ بله |
روش ۱: لینک سفارشی در منو (سادهترین)
این روش سریعترین است اما لینک خروج همیشه نمایش داده میشود (حتی برای کاربران لاگیننشده).
مراحل:
- به نمایش ← فهرستها (Appearance → Menus) بروید
- در ستون چپ، بخش لینکهای دلخواه را باز کنید
- در فیلد URL، آدرس زیر را وارد کنید (دامنه خود را جایگزین کنید):
https://yourdomain.com/wp-login.php?action=logout
- در فیلد متن پیوند، عبارت «خروج» یا «Log Out» را بنویسید
- روی افزودن به فهرست کلیک کنید
- موقعیت لینک را تنظیم و ذخیره فهرست را بزنید

افزودن ریدایرکت پس از خروج:
به طور پیشفرض، کاربر پس از خروج به صفحه لاگین هدایت میشود. برای هدایت به صفحه خانگی:
https://yourdomain.com/wp-login.php?action=logout&redirect_to=https://yourdomain.com
⚠️ مشکل این روش:
لینک خروج به همه کاربران نمایش داده میشود - حتی کسانی که لاگین نکردهاند. این از نظر UX و امنیت بهینه نیست.
روش ۲: افزونه Login Logout Menu (بدون کدنویسی)
این افزونه رایگان، لینک ورود/خروج پویا اضافه میکند که بر اساس وضعیت کاربر تغییر میکند.
مراحل نصب و استفاده:
- به افزونهها ← افزودن بروید
- عبارت «Login Logout Menu» را جستجو کنید
- افزونه را نصب و فعال کنید
- به نمایش ← فهرستها بروید
- در ستون چپ، گزینه جدید «Login/Logout» ظاهر شده
- آن را به فهرست اضافه و ذخیره کنید
تنظیمات افزونه:
- Login Page URL: آدرس صفحه ورود سفارشی
- Login Redirect URL: هدایت پس از ورود
- Logout Redirect URL: هدایت پس از خروج
روش ۳: کد PHP در functions.php (حرفهای)
این روش لینک ورود/خروج پویا به انتهای منو اضافه میکند - بدون نیاز به افزونه.

کد را به functions.php اضافه کنید:
function add_login_logout_link( $items, $args ) {
// فقط برای منوی اصلی اعمال شود
if ( $args->theme_location != 'primary' ) {
return $items;
}
if ( is_user_logged_in() ) {
// کاربر لاگین کرده - نمایش لینک خروج
$items .= '<li class="menu-item"><a href="'. wp_logout_url( home_url() ) .'">خروج</a></li>';
} else {
// کاربر لاگین نکرده - نمایش لینک ورود
$items .= '<li class="menu-item"><a href="'. wp_login_url() .'">ورود</a></li>';
}
return $items;
}
add_filter( 'wp_nav_menu_items', 'add_login_logout_link', 199, 2 );
توضیحات کد:
wp_logout_url(): تابع وردپرس برای ایجاد لینک خروج امنwp_login_url(): تابع وردپرس برای لینک ورودhome_url(): آدرس صفحه خانگی (برای ریدایرکت)is_user_logged_in(): بررسی وضعیت لاگین کاربر
✅ مزیت این روش:
لینک خروج فقط به کاربران لاگینشده نمایش داده میشود. کاربران لاگیننشده لینک ورود میبینند.
روش ۴: شورتکد سفارشی
با این روش میتوانید لینک خروج را در هر جایی (ویجت، محتوا، فوتر) قرار دهید.
کد شورتکد:
function bertina_logout_shortcode() {
if ( is_user_logged_in() ) {
return '<a href="' . wp_logout_url( home_url() ) . '" class="logout-link">خروج از حساب</a>';
}
return '<a href="' . wp_login_url() . '" class="login-link">ورود به حساب</a>';
}
add_shortcode( 'logout_link', 'bertina_logout_shortcode' );
استفاده از شورتکد:
در هر جایی که شورتکد پشتیبانی میشود، بنویسید:
[logout_link]
نکات امنیتی مهم

- از wp_logout_url() استفاده کنید: این تابع Nonce امنیتی تولید میکند
- لینک خروج را به کاربران لاگینشده محدود کنید: نمایش به همه کاربران امنیت را کاهش میدهد
- ریدایرکت پس از خروج: کاربر را به صفحه خانگی هدایت کنید، نه صفحه لاگین
- Session Management: از افزونههای امنیتی برای مدیریت Session استفاده کنید
سوالات متداول
چگونه لینک خروج فقط به کاربران لاگینشده نمایش داده شود؟
از تابع is_user_logged_in() در کد PHP استفاده کنید یا افزونه Login Logout Menu نصب کنید. این افزونه به صورت خودکار لینک ورود/خروج را بر اساس وضعیت کاربر تغییر میدهد. روش لینک سفارشی در منو این قابلیت را ندارد.
چگونه کاربر پس از خروج به صفحه خانگی هدایت شود؟
در روش کد PHP، از wp_logout_url(home_url()) استفاده کنید. در روش لینک سفارشی، پارامتر redirect_to را به آدرس اضافه کنید: wp-login.php?action=logout&redirect_to=https://yourdomain.com - دامنه خود را جایگزین کنید.
آیا لینک خروج بدون Nonce امن است؟
خیر. لینک خروج بدون Nonce (توکن امنیتی) آسیبپذیر به حملات CSRF است. تابع wp_logout_url() وردپرس به طور خودکار Nonce تولید میکند. اگر لینک دستی میسازید، از این تابع استفاده کنید.
چگونه لینک خروج را استایلدهی کنم؟
در روش کد PHP، کلاس CSS به لینک اضافه کنید (مثل menu-item یا logout-link). سپس در فایل style.css یا تنظیمات قالب، استایل دلخواه را برای آن کلاس بنویسید. در منوی وردپرس هم میتوانید کلاس CSS به آیتم اضافه کنید.
بهترین افزونه برای مدیریت ورود/خروج چیست؟
افزونه Login Logout Menu رایگان و ساده است. برای امکانات بیشتر، ProfilePress یا Theme My Login را امتحان کنید. این افزونهها علاوه بر لینک خروج، صفحات ورود/ثبتنام سفارشی و مدیریت پروفایل هم دارند.
جمعبندی
اضافه کردن لینک خروج به منوی وردپرس برای تجربه کاربری و امنیت سایت ضروری است. برای سایتهای ساده، روش لینک سفارشی یا افزونه Login Logout Menu کافی است. برای کنترل بیشتر، از کد PHP با تابع wp_logout_url() استفاده کنید. مهمترین نکته: لینک خروج را فقط به کاربران لاگینشده نمایش دهید.
منابع: WPBeginner، WordPress.org




