رفع مشکل خروج خودکار کاربر از وردپرس — ۸ راه‌حل کامل

تصور کنید در حال نوشتن یک پست طولانی در وردپرس هستید و ناگهان از حساب خود خارج می‌شوید — تمام کارتان از دست می‌رود. این یکی از آزاردهنده‌ترین مشکلات وردپرس است و خوشبختانه راه‌حل‌های ساده‌ای برایش وجود دارد. در این مقاله دلایل خروج خودکار کاربر و راه‌های رفع این مشکل را بررسی می‌کنیم.

چرا وردپرس به‌طور خودکار مرا خارج می‌کند؟

وردپرس برای ورود کاربران از کوکی‌ها (Cookies) استفاده می‌کند. وقتی وارد می‌شوید، وردپرس یک کوکی تایید در مرورگر شما ذخیره می‌کند که حاوی اطلاعات احراز هویت است. این کوکی به دامنه‌ای که وردپرس روی آن تعریف شده «گره خورده» است. اگر عدم تطابقی بین دامنه کوکی و دامنه‌ای که سایت را با آن باز می‌کنید وجود داشته باشد، وردپرس کوکی را نامعتبر می‌داند و شما را خارج می‌کند.

دلایل رایج خروج خودکار

  • عدم تطابق بین WordPress Address (URL) و Site Address (URL)
  • مهاجرت از HTTP به HTTPS بدون بروزرسانی تنظیمات
  • تنظیم غلط SECRET KEYها در wp-config.php
  • افزونه کش نادرست پیکربندی‌شده
  • افزونه امنیتی با قوانین سخت‌گیرانه
  • پاک شدن کوکی توسط مرورگر
  • اختلاف در دامنه (www در مقابل بدون www)
  • استفاده از چند زیردامنه همزمان

راه‌حل ۱: بررسی تنظیمات WordPress Address و Site Address

در داشبورد وردپرس به تنظیمات → عمومی بروید. دو فیلد زیر باید کاملاً یکسان باشند:

  • WordPress Address (URL): آدرس فایل‌های وردپرس
  • Site Address (URL): آدرس سایت برای بازدیدکنندگان

هر دو باید:

  • با یک پروتکل یکسان شروع شوند (هر دو HTTPS یا هر دو HTTP)
  • یا هر دو با www یا هر دو بدون www باشند
  • بدون اسلش انتهایی (trailing slash) باشند

راه‌حل ۲: پاک کردن کوکی‌های مرورگر

  1. در مرورگر Chrome، F12 را بزنید تا DevTools باز شود
  2. به تب Application بروید
  3. در پنل سمت چپ، Cookies را باز کنید
  4. روی دامنه سایت خود راست‌کلیک کنید و Clear را انتخاب کنید
  5. یا از تنظیمات مرورگر، کوکی‌های آن سایت را پاک کنید
  6. سایت را ببندید و دوباره باز کنید و وارد شوید

راه‌حل ۳: بازنویسی SECRET KEYها در wp-config.php

این راه‌حل معمولاً حتی مشکلات عمیق‌تر را حل می‌کند. به سایت api.wordpress.org/secret-key/1.1/salt/ بروید. این آدرس یک مجموعه کلیدهای امنیتی جدید به شما می‌دهد.

فایل wp-config.php را باز کنید. بلوکی مشابه این پیدا کنید:

define('AUTH_KEY',         'your-key-here');
define('SECURE_AUTH_KEY',  'your-key-here');
define('LOGGED_IN_KEY',    'your-key-here');
define('NONCE_KEY',        'your-key-here');
define('AUTH_SALT',        'your-key-here');
define('SECURE_AUTH_SALT', 'your-key-here');
define('LOGGED_IN_SALT',   'your-key-here');
define('NONCE_SALT',       'your-key-here');

این بلوک را با کلیدهای جدیدی که از api.wordpress.org گرفتید جایگزین کنید. این کار تمام کاربران فعلی را خارج می‌کند، اما مشکل خروج خودکار را حل می‌کند.

راه‌حل ۴: غیرفعال کردن افزونه‌ها به‌صورت آزمایشی

گاهی یک افزونه ناسازگار باعث خروج خودکار می‌شود:

  1. به افزونه‌ها در داشبورد بروید
  2. تمام افزونه‌ها را غیرفعال کنید
  3. از سایت خارج و دوباره وارد شوید
  4. اگر مشکل حل شد، افزونه‌ها را یکی یکی فعال کنید تا افزونه مشکل‌ساز را پیدا کنید
  5. معمولاً افزونه‌های زیر مشکل‌ساز می‌شوند: افزونه‌های امنیتی، افزونه‌های کش، افزونه‌های CDN

راه‌حل ۵: تنظیم Cookie Domain در wp-config.php

اگر سایت شما روی چند زیردامنه کار می‌کند یا بین www و بدون www ریدایرکت دارد، این کد را به wp-config.php اضافه کنید:

define('COOKIE_DOMAIN', '.yoursite.com');

نقطه ابتدای دامنه (.yoursite.com) بسیار مهم است — این باعث می‌شود کوکی برای همه زیردامنه‌ها معتبر باشد.

راه‌حل ۶: افزایش عمر کوکی

اگر کوکی‌ها به‌طور خودکار سریع منقضی می‌شوند، می‌توانید زمان ماندگاری را با یک افزونه کوتاه افزایش دهید. این کد را در functions.php قالب فرزند قرار دهید:

add_filter( 'auth_cookie_expiration', 'mh_extend_login_cookie' );
function mh_extend_login_cookie( $expirein ) {
    return 2592000; // ۳۰ روز
}

حالا کوکی ورود به مدت ۳۰ روز معتبر باقی می‌ماند.

راه‌حل ۷: پیکربندی درست کش

افزونه‌های کش مثل WP Rocket، W3 Total Cache یا LiteSpeed Cache ممکن است صفحه لاگین را کش کنند و باعث خروج خودکار شوند. در تنظیمات افزونه کش:

  • مطمئن شوید Logged-in users از کش مستثنی هستند
  • صفحه /wp-admin/ و /wp-login.php در لیست مستثنی (exclude) قرار دارند
  • کش را پاک کنید و دوباره تست کنید

راه‌حل ۸: بررسی مشکل HTTPS

اگر اخیراً HTTPS را فعال کرده‌اید ولی هنوز ریدایرکت کامل نشده، وردپرس ممکن است بین HTTP و HTTPS قاطی شود. این کد را به wp-config.php اضافه کنید:

define('FORCE_SSL_ADMIN', true);

if ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
    $_SERVER['HTTPS'] = 'on';
}

نکات تکمیلی

  • بعد از هر تغییر، کش سایت و کش مرورگر را پاک کنید
  • روی یک مرورگر incognito تست کنید تا مشکلات کش و کوکی حذف شوند
  • اگر از Cloudflare استفاده می‌کنید، Page Cache را بررسی کنید
  • افزونه‌های امنیتی مثل Wordfence را یک بار موقت غیرفعال کنید

🛡️ هاست پایدار با تنظیمات کوکی درست

هاست وردپرس میهن هاستینگ با تنظیمات بهینه PHP و پشتیبانی فنی، مشکلات سشن و کوکی را حداقل می‌کند.

مشاهده هاست وردپرس

پرسش‌های متداول

آیا این مشکل نشانه هک شدن سایت است؟

معمولاً نه. این مشکل اغلب از تنظیمات غلط یا افزونه‌های ناسازگار ناشی می‌شود. اما اگر مشکل ادامه دارد و کاربران ناشناس هم وارد می‌شوند، با افزونه Wordfence سایت را اسکن کنید.

چرا فقط در Chrome مشکل دارم ولی در Firefox نه؟

احتمالاً کوکی‌های Chrome خراب شده. از تنظیمات Chrome کوکی‌های آن سایت را پاک کنید و دوباره لاگین کنید.

آیا VPN باعث خروج خودکار می‌شود؟

بله، اگر VPN IP شما را مرتب تغییر دهد و افزونه امنیتی تنظیم شده که هر IP جدید را فورا لاگ‌آوت کند. Wordfence چنین قاعده‌ای دارد که می‌توانید از تنظیماتش غیرفعال کنید.

چطور کاربر را در حالت ورود نگه دارم حتی پس از بستن مرورگر؟

هنگام ورود، تیک «مرا به خاطر بسپار» (Remember Me) را بزنید. این کوکی را به جای زمان جلسه (session) برای ۱۴ روز معتبر نگه می‌دارد.

مقالات مرتبط