چند وقت پیش وقتی رو سایت یکی از مشتریا کار می‌کردم متوجه مشکلی با عنوان ” دیده نشدن زیر منو افزونه ها ” شدم! خب اینم یه چالش جدید بعد از چالش ارور ۴۰۴ سایت مپ و رفع آن بود. خیلی در موردش سرچ کردم. خب برای حل مسئله چیکار کردم؟ شروع کردم به تست کردن چیزهایی که فکر می‌کردم از دلایل به وجود آورنده این مشکل هست.

دلایل دیده نشدن زیر منو افزونه ها که به ذهنم میرسید

  • نصب نادرست قالب سایت
  • تداخل بین افزونههای نصب شده
  • استفاده از افزونه امنیتی
  • نصب نادرست و یا بروزرسانی ناقص وردپرس!

برای بررسی این موارد چیکار کردم؟

زیر منو افزونه ها در وردپرس

مرحله اول: نصب مجدد قالب سایت

دوباره قالب رو با جدیدترین نسخه موجود، جایگزین کردم. برای اینکار کافیه که پوشه قالب‌هاتون رو که شامل قالب اصلی و Child هست رو داخل فولدر public-html / wp-content / themes آپلود کنید. برای اینکه خیالتون راحت باشه که مشکلی پیش نمی‌آید می‌تونید نام پوشه قالب فعلی رو تغییر بدین. گاهی بخاطر عدم استفاده از قالب child ممکنه که با جایگزین کردن قالب جدید، تنظیمات قالبتون دچار تغییراتی بشه، پس حتما یا بک آپ بگیرید و یا از ترفند تغییر اسم قالب استفاده کنید. اما متاسفانه مشکل من با این تغییرات حل نشد!

مرحله دوم: بررسی مشکل تداخل افزونه ها

برای اینکار کافیه که از قسمت افزونه‌ها تمامی افزونه‌ها رو انتخاب کنید و از قسمت کارهای دسته جمعی گزینه غیرفعال کردن رو انتخاب کنید. در صورتی که به هاست دسترسی داشتید هم می‌تونید از public-html / wp-content / plugins پوشه پلاگین رو تغییر نام بدین تا تمامی افزونه‌ها غیر فعال بشه. بعد برای پیدا کردن اینکه کدوم افزونه مشکل داره، کافیه دونه دونه افزونه‌ها رو فعال کرده و مشکل رو چک کنید. البته که مشکل من تداخل افزونه هم نبود.

مرحله سوم: بررسی افزونه امنیتی

من از یه افزونه برای تغییر لینک ورود به سایت، تغییر اسم دیتابیس و بلاک کردن افرادی که قصد هک کردن سایت رو داشتن و … استفاده کرده بودم. حدس زدم شاید این افزونه طی تنظیماتی که اعمال کردم مشکلی رو ایجاد کرده باشه! برای همین اول این افزونه رو غیرفعال کردم دیدم درست نشد. مجدد از قسمت تنطیمات پلاگین، تنظیمات اون رو ریست کردم! اما بازم مشکل برطرف نشد.

حالا دیگه درمونده شده بودم!

واقعا راه حلی به ذهنم نمی‌رسید که می‌تونه چیو کجا این مشکل رو ایجاد کرده باشه که باعث دیده نشدن زیر منو افزونه ها شده باشه.

مرحله چهارم: بروزرسانی ناقص وردپرس

حقیقتا نمیدونستم این مشکل رو چجوری باید برطرف کنم! خب کار سختی بود! برای همین اولی کاری که به ذهنم رسید این بود که فایل config رو بررسی کنم و با یه سایت دیگه که مشکلی نداره مقایسه کنم. خب چی پیدا کردم؟ دو خط کد که دلیل اصلی این مشکل دیده نشدن زیر منو افزونه ها بود.

define(‘DISALLOW_FILE_EDIT’, true);
define(‘DISALLOW_FILE_MODS’, true);

این دو خط کد احتمالاً بخاطر افزونه امنیتی / فایروال است. هرچند اون‌ها به طور پیش فرض این کار را انجام نمی‌دهند، بنابراین احتمالاً شخصی بدون درک پیامدهای آن، گزینه‌ها را انتخاب کرده است. بنابراین با حذف این دو خط کد مشکل سایت من برطرف شد.

تنظیم DISALLOW_FILE_EDIT روی TRUE در واقع ایده بسیار خوبیه، زیرا ویرایشگر افزونه‌ها و قالب رو غیرفعال می‌کند (گزینه سوم زیر منوهای افزونه ها). از آنجا که ویرایش فایل‌های افزونه و قالب می‌تواند خطاهای مهلکی در وب سایت ایجاد کند و از آنجا که توسعه دهندگان باتجربه با سایر روش‌های ویرایش کد وب سایت اینکار رو انجام می‌دهند، تنظیم آن روی TRUE بسیار محتاطانه است.

DISALLOW_FILE_MODS چیزی است که باید با احتیاط بیشتری انجام شود، زیرا مکانیسم‌های بروزرسانی قالب و افزونه‌ها را خراب می‌کند.

البته استفاده از کد خط دوم به مراتب کار کد خط اول رو هم انجام میده. اما فایدهش چیه؟ هکرها نمی‌تونند به فایل‌های قالب یا افزونه‌های سایت برای ویرایش دسترسی داشته باشند.

3 دیدگاه در “دیده نشدن زیر منو افزونه ها

  1. سعید گفت:

    بسیار ممنون از راهنماییتون، برا منم مشکل کد بود که با راهنمایی که کردین درست شد.

    1. خواهش میکنم، خداروشکر که تونسیم مشکلتون رو حل کنیم

  2. آروین گفت:

    چه آموزش خوبی بود واقعا من چقد سرچ کرده بودم تو گوگل اما متاسفانه همه آموزش‌های تکراری گذاشته بودن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.