گاهی ممکن است در وردپرس مانند تصویر زیر با پیغام خطای "کوکی ها مسدود شده اند یا توسط مرورگر شما پشتیبانی نمی شوند. شما باید آن ها را فعال کنید تا وردپرس بتواند از آن استفاده کند." مواجه شوید، اما جای نگرانی نیست زیرا در این مقاله به بررسی دلیل ایجاد این خطا و نحوه رفع آن پرداخته می شود.
به طور پیش فرض کوکی های مرورگر فعال است اما اگر در صفحه ورود به وردپرس با خطای مسدود شدن کوکی ها مواجه شدید در قدم اول می بایست به دنبال رفع خطا در سیستم خودتان باشید.
تصویر(1)
علل مسدود شدن کوکی ها در وردپرس چیست؟
تصویر(2)
دلایل مختلفی برای ایجاد خطای مسدود شدن کوکی ها در وب سایت وردپرسی وجود دارد که در این قسمت چند نمونه از آنها مطرح می شود:
1. ممکن است کد گذاری صورت گرفته در فایل htaccess اشتباه باشد.
2. غیر فعال بودن کوکی ها در مرورگر.
3.تداخل افزونه ها (خصوصا افزونه های کش و امنیتی مانند All-In-One WP Security) یا قالب با اسکریپت.
4.این امکان وجود دارد که خطا بعد از نصب گواهی ssl و عدم ریدایرکت لینک ها به https رخ دهد.
از آنجا که هر عاملی ممکن است دلیل ایجاد خطای مسدود شدن کوکی ها باشد، در ادامه به بررسی روش های رفع خطا پرداخته می شود.
راهکارهای رفع خطای مسدود شدن کوکی ها در وردپرس
روش های مختلفی برای رفع خطای مسدود شدن کوکی ها در وردپرس وجود دارد.
- فعال سازی کوکی ها در مرورگر
یکی از روش های رفع خطای مسدود شدن کوکی ها در وردپرس، فعال سازی کوکی ها در مرورگر است.
روند فعال سازی کوکی در مرورگر های مختلف تقریبا یکسان است در این بخش به بررسی فعال سازی کوکی ها در دو مرورگر کروم و فایرفاکس پرداخته می شود.
فعال سازی کوکی ها در مرورگر کروم
در قدم اول، مرورگر کروم را باز نموده و آدرس زیر را وارد کنید:
chrome://settings/cookies
البته می توانید بعد از ورود به هر سایتی مطابق با تصویر زیر در ابتدای آدرس بر روی آیکون قفل صفحه کلیک نمایید تا تنظیمات سایت را مشاهده نموده و "site settings" را انتخاب کنید.
تصویر(3)
در صفحه باز شده مطابق با تصویر زیر از تب "Privacy and security" بر روی گزینه "Cookies and other site data" کلیک کنید.
تصویر(4)
در نهایت صفحه زیر برای شما باز خواهد شد که می توانید به بخش "Customized behaviors" مراجعه و در قسمت "Sites that can always use cookies" بر روی دکمه "add" کلیک کنید.
تصویر(5)
پس از انتخاب این دکمه مطابق با تصویر زیر پنجره ای برای شما باز خواهد شد که باید آدرس وب سایت خود را درج کنید. توجه داشته باشید که به جای example.com باید آدرس وب سایت مد نظرتان را وارد نمایید.
تصویر(6)
فعال سازی کوکی ها در مرورگر فایرفاکس
ابتدا فایرفاکس خود را باز کنید سپس مطابق با تصویر زیر، بر روی دکمه "Menu" در سمت راست بالای صفحه کلیک کرده و به بخش "Settings" مراجعه نمایید.
تصویر(7)
در صفحه باز شده، باید بر روی گزینه "Privacy & Security" کلیک کنید و از بخش "History" گزینه "Firefox Will" را بر روی "Use Custom Setting for history" تنظیم نمایید تا کوکی فعال شود.
تصویر(8)
در ادامه گزینه "Clear history when Firefox closes" را انتخاب کرده و از بخش "Settings" گزینه "Cookies" را فعال کنید.
تصویر(9)
هم اکنون مجدد به صفحه ی ورود به وردپرس مراجعه نموده و صفحه را refresh کنید. در صورتی که مشکل ادامه دار بود می بایست از روش های دیگر که در ادامه توضیح داده می شود، استفاده نمایید.
- تنظیم کردن کوکی های دامنه
به منظور تنظیم نمودن کوکی های دامنه مطابق با تصویر زیر ابتدا وارد هاست سی پنل خود شوید، سپس بر روی گزینه "File Manager" کلیک نمایید. در نظر داشته باشید که این مورد برای هاست های دایرکت ادمین نیز صادق بوده و لازم است تا از بخش های متناظر اقدام نمایید.
تصویر(10)
در این بخش می بایست به پوشه "public_html"مراجعه و فایل "wp-config.php" را انتخاب کرده و بخش "Edit" را کلیک کنید.
تصویر(11)
در نهایت در صفحه باز شده قطعه کد زیر را در بالای خط /* That’s all, stop editing! Happy blogging. */ اضافه کنید. (پیشنهاد می شود قبل از اعمال تغییرات از هاست خود نسخه پشتیبان تهیه نمایید).
// Set cookie domain for login cookies
define( 'COOKIE_DOMAIN', '.domain.com' );
بجای domain.com می بایست نام وب سایت مد نظر را وارد کنید در نهایت بر روی گزینه "save changes" کلیک نمایید تا تغییرات ذخیره شود.
اگر از وردپرس شبکه استفاده می کنید و کد ذکر شده در بالا مشکل شما را رفع نکرد، میتوانید قطعه کد زیر را در مسیر فایل مربوطه (یعنی در فایل "wp-config.php") درج کنید.
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );
3. غیر فعال کردن (bypass) کوکی های وب سایت
این راهکار، بهترین روش موجود نمی باشد زیرا کوکی های سایت را برای لاگین نمودن، نادیده می گیرد.
setcookie(TEST_COOKIE, ‘WP Cookie check’, 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH ) setcookie(TEST_COOKIE, ‘WP Cookie check’, 0, SITECOOKIEPATH, COOKIE_DOMAIN);
دو روش برای افزودن کد php وجود دارد:
1. استفاده از افزونه Code Snippets.
2. به مسیر "Public_html" سپس "wp_content" مراجعه و وارد پوشه قالب خود شوید و فایل "functions.php" را ویرایش کرده و قطعه کد بالا را در آن قرار دهید.
به منظور نصب افزونه Code Snippets از پنل مدیریتی به بخش "افزونه ها> افزودن" مراجعه و نام پلاگین مد نظر را سرچ نمایید.
در این افزونه شما امکان فعالسازی و یا غیر فعالسازی قطعه کدهایی را که اضافه می کنید، خواهید داشت. همچنین می توانید برای آنها توضیحاتی نیز درج نمایید که عملکردشان را بیان نماید. این کار یک روش خوب برای مدیریت ارورها جهت اجتناب از خطاهای مربوط به PHP می باشد.
روش دوم (افزودن قطعه کد php در فایل"functions.php" قالب) رایج تر می باشد، این روش برای سایت هایی که از Child Theme (یک قالب وردپرس می باشد که عملکرد های خود را از یک قالب دیگر یعنی قالب والد به ارث می برد) استفاده می کنند، بهتر است. در صورت عدم استفاده از Child Theme توصیه می شود از این روش استفاده نکنید زیرا با بروز رسانی قالب تمامی تغییرات اعمال شده پاک خواهد شد.
سایر روش های حل مشکل
ساز و کار هر کدام از سایت های وردپرسی متفاوت است اگر به هر دلیلی هیچ کدام از راهکار های مطرح شده جواب نداد می توانید از روش های زیر استفاده کنید.
- ابتدا فایل "htaccess" را از هاست خود حذف کنید (پیشنهاد می شود قبل از اعمال تغییرات از هاست خود نسخه پشتیبان تهیه نمایید) اگر خطا رفع شد، مطابق با تصویر زیر از پنل مدیریتی به بخش "تنظیمات" مراجعه و تنظیمات "پیوندهای یکتا" را بدون هیچ تغییری ذخیره کنید این عمل سبب ایجاد فایل "htaccess" جدید در هاست شما خواهد شد.
تصویر(12)
- جهت رفع مشکل میتوانید افزونه های فعال در وردپرس را غیر فعال نمایید. اگر مشکل رفع شد می بایست در مرحله بعد همه افزونه ها را فعال و سپس بصورت تک تک غیرفعال کنید تا افزونه ای که باعث اختلال شده است شناسایی شود و همزمان وضعیت را نیز مورد بررسی قرار دهید. به طور معمول افزونه های کش و امنیتی علل ایجاد خطای مسدود شدن کوکی ها هستند.
- در صورت وجود کد زیر در فایل "wp-config.php" آن را حذف کنید.
// define ('COOKIE_DOMAIN'، 'www.domain.com');
- اگر به تازگی افزونه ssl را نصب کرده اید اطمینان حاصل کنید که تنظیمات ریدایرکت لینک ها از http به https به درستی در حال انجام باشد.
- این امکان وجود دارد که اختلال از کدهای قالب شما باشد به منظور غیر فعال سازی موقت قالب، میتوانید نام پوشه قالب را تغییر دهید (در این حالت وردپرس به قالب پیش فرض اولیه در خواهد آمد) سپس وضعیت را بررسی کنید. اگر مشکل ایجاد شده از قالب شما بود، توصیه می شود قالب خود را حذف کرده و دوباره نصب نمایید.
نتیجه گیری:
استفاده از کوکی ها سبب می شود که کاربران با سرعت بالاتری به سایت متصل شوند. اما ممکن است بعضا با پیغام خطای "کوکی ها مسدود شده اند یا توسط مرورگر شما پشتیبانی نمی شوند. شما باید آن ها را فعال کنید تا وردپرس بتواند از آن استفاده کند." مواجه شوید که با انجام راهکار های مطرح شده در این مقاله، مشکل شما رفع خواهد شد.