افزونه های وردپرس اونقدری قدرتمند هستن که میتونن به راحتی خواستهها و نیازهای ما رو از سایت برطرف کنن. این افزونه ها ویژگیهای قابل توجهی دارن که اونها رو به یک دستیار قدرتمند تبدیل کرده. اما با وجود این که قابلیتهای خاصی دارن و همیشه مفید عمل میکنن، گاهی اوقات باعث به جود اومدن باگهایی میشن. اونها اغلب در مرکز ارورها، خطاها و مشکلات عملکردی سایت هستن. حتی میشه گفت تبدیل به ترسناک ترین اتفاق ممکن میشن یعنی صفحه سفید وردپرس! دلیل یکی از این دردسرها، بروز تداخل در افزونه ها هست. ما توی این مقاله علت وقوع و رفع مشکل تداخل افزونه ها در وردپرس رو بررسی میکنیم.
اگر هنوز با صفحه سفید وردپرس روبرو نشدین یا موقع ورود به سایت صفحه رو پیکسل پیکسل ندیدین(که همه اینا رو مدیون افزونه ها هستیم!)، باید به خودتون تبریک بگید! شما آدم خوش شانسی هستید. حقیقت اینه که، ما از قبل آگاه هستیم که افزونه های بد میتونن مشکل ساز باشن. به همین دلیل راهنماییهای زیادی وجود دارن که به ما کمک میکنن تا افزونه های مناسب رو انتخاب کنیم. اونها رو به روز کنیم و یاد بگیریم که در صورت به وجود اومدن مشکل، بهترین راه حل ممکن رو انتخاب کنیم. در اینجا قصد داریم به رفع مشکل تداخل افزونه ها در وردپرس بپردازیم.
تداخل در افزونه ها چیه و چرا اتفاق میفته؟
تعریف
همونطور که این اصطلاح نشون میده، تداخل افزونه، در نتیجه برخورد دو یا چند افزونه WordPress با همدیگه رخ میده. علاوه بر این، تداخل میتونه به دلیل رویارویی پلاگین ها با تمها و یا همون قالبها باشه. یا گاهی اوقات مربوط به نسخه وردپرسی هست که ما داریم و این نسخه و افزونه ها باهم سازگاری ندارن. به طور معمول هرچی این تداخل پیچیده تر یا مهم تر باشه، پیامدهای بیشتری در وب سایت داره. اگر یکی از افزونه های اصلی یا تمهای اولیه درگیر یک تداخل بزرک بشن، عواقب به صورت هرج و مرجی عظیم قابل مشاهده خواهد و کارایی سیستم به خطر خواهد افتاد. پس هرچه سریع تر باید سعی کنیم در صدد حل مشکل تداخل پلاگین ها در وردپرس بربیایم.
چرا تداخل به وجود میاد؟
از نظر فنی تداخل وقتی رخ میده که هر دو طرف سعی میکنن کدهایی رو اجرا کنن که همدیگه رو محدود کنن و متناقض باشن. این اتفاق بدین معنیه که برطرف کردن مشکل تداخل افزونه ها در وردپرس بسیار اهمیت داره. ما هرچی بهتر و کامل تر افزونه ها رو بشناسیم زودتر میتونیم به رفع مشکل تداخل افزونه ها در وردپرس بپردازیم. اگرچه همه پلاگین ها و قالبها وظایف متمایز خودشون رو به عهده دارن، این امر میتونه دلایل مختلفی داشته باشه:
- یک تضاد بین منابع ممکنه تبدیل به یک تضاد بین دو افزونه بشه. دلیل این اتفاق پیچیدگی شدید در کدها مثل صورت کالا تجارت الکترونیکی و افزونه صدور صورت حساب هست.
- حتماً این ضرب المثل رو شنیدین که یک سیب گندیده کل جعبه رو خراب میکنه. یک کد نویسی ضعیف پشت یک افزونه ممکنه بقیه رو محدود کنه و سبب سقوط کل سیستم بشه.
- بعد از به روز رسانی یک افزونه، آخرین نسخه میتونه با تم ما سازگار نباشه.
- به روز رسانی خودکار دسته ای ممکنه یه جنگ تمام عیار بین دو یا چند افزونه آغاز کنه که هر دو سعی دارن یکدیگه رو با دستورات متضاد تحت تأثیر قرار بدن.
دلایل دیگه ای هم وجود داره. ولی دلایل هرچی که باشن به کدی که پشت پلاگین ها و قالبها هست مربوطن. اقدامات توسعه کنندگان که سعی در رفع مشکل تداخل افزونه ها در وردپرس دارن هم بی تأثیر نیست.در نهایت این ما هستیم که باید به رفع مشکل تداخل افزونه ها در وردپرس برسیم.
شناخت تضادها به منظور حل مشکل تداخل پلاگین ها در وردپرس
این تداخل ها شبیه چی هستن؟ ما باید اول شکل و فرم این تضادها رو شناسایی کنیم تا بتونیم در برطرف کردن مشکل تداخل افزونه ها در وردپرس موفق عمل کنیم. از اونجایی که درگیریهای پلاگین میتونن به دلایل متعددی رخ بدن، ارورهایی که اونا باعث میشن، میتونه طیف گسترده ای از شکل و فرم داشته باشه. این حالات از تبدیل شدن یک قسمت از وب سایت به یک چیز خنده دار تا ظاهر شدن صفحه سفید وردپرس رو شامل میشه. این تداخل ها چیزی بیش از این نیستن.
اگرچه تداخل افزونه ها یک دلیل شایع برای بروز خطاها در سایت وردپرس هست، اما شناسایی یک تضاد و تداخل فقط با دیدن یک ارور میتونه کار سختی باشه. بنابراین به جای تمرکز روی خطاها به همین ترتیب، به منظور عیب یابی و صرفاً حل مشکل تداخل پلاگین ها در وردپرس، شما باید سطح دسترسی و کنترلی رو که در وب سایت براتون باقی مونده رو پیدا کنید.
دو راه اصلی تأثیر تداخل ها در وب سایت
- اونها میتونن باعث ایجاد خطا در وب سایت زنده یا عمومی شما بشن، اما هنوز هم شما به پنل ادمین و وب سایت دسترسی دارید.
- اونها میتونن باعث ایجاد صفحه سفید در وردپرس(WSOD) بشن که سایت شما رو خراب میکنه و شما از پنل مدیریت خود قفل میشید.
به خاطر داشته باشید که هر دوی این خطاها میتونن در اثر عوامل دیگه ای ایجاد بشن. به عنوان مثال بعضی از باگها و اشکالات بصری میتونه نتیجه یک افزونه منسوخ یا تم ناسازگار باشه، یا ممکنه WSOD اتفاق بیفته چون سرور شما به حداقل حافظه خودش رسیده. با این وجود هر زمان که چیزی توی سایت شما رخنه کرد و عیب یابی اساسی جوابگو نبود، میتونین تقریباً مطمئن باشید که یک تداخل عامل اصلی این آشفتگیه.
چگونگی رفع مشکل تداخل افزونه ها در وردپرس وقتی که دسترسی به پنل ادمین برقراره
صرف نظر از مشکلی که در وب سایت خودتون با اون روبرو هستین، اگر هنوز به صفحه مدیریت خود دسترسی دارید، جای شکرش باقیه! از طریق مراحل زیر ما به شما نشون میدیم که چگونه تداخل ها رو شناسایی کنید، پلاگین ها و یا تمهای درگیر رو پیدا کنید و ارورهای تداخل رو برطرف کنید. همه این کارها هم از طریق پنل ادمین وردپرس شما.
خلاصه کاری که برای حل مشکل تداخل افزونه ها در وردپرس وقتی که به پنل ادمین دسترسی دارین باید انجام بدید شامل:
- حافظه نهان یا همون cache مرورگر خودتون رو پاک کنید.
- اطمینان حاصل کنید که افزونه های شما به روز شده باشن.
- مشخص کنید که تداخل افزونه به دلیل نپذیرفتن نسخه وردپرس از جانب افزونه هست یا به دلیل تداخل افزونه با تم اتفاق افتاده.(سایت staging برای این قسمت پیشنهاد میشه)
- به کمک کنسول مرورگر خودتون پلاگین هایی که باعث تداخل شدن رو ردیابی کنید یا به صورت دستی غیر فعال کنید. غیر فعال کردن هر افزونه رو یک به یک انجام بدید.
- یک یا هر دو افزونه رو جایگزین کنید و مشکل نرم افزاری یا همون باگ رو به توسعه دهنگان گزارش کنید.
حافظه نهان(cache) مرورگر رو پاک کنید
این یک اتفاق معموله که حافظه نهان مرورگر شما کدهای قدیمی رو نگه میداره و نمیتونه توی منعکس کردن کدهای جدید موفق عمل کنه، به خصوص بعد از این که افزونه ها رو به روز کرده باشین. پس cache مرورگر رو پاک کنید تا مطمئن شید این اتفاق نمیفته.
اگر روی Chrome هستید:
- ‘ctrl+shift+del’ رو فشار بدین
- ‘تصاویر و پروندههای ذخیره شده’ رو انتخاب کنید
- ‘clear’ رو بزنید
روی Safari:
- ‘option+command+E’ رو فشار بدین
- ’empty’ رو انتخاب کنید
برای حل مشکل تداخل افزونه ها در وردپرس از آپدیت بودن پلاگین ها مطمئن شید
به قسمت ادمین سایت خودتون مراجعه کنید و چک کنید تا مطمئن شین که همه افزونه ها به آخرین نسخههاشون به روز شدن. این بررسی کردن راحت ترین کاریه که میتونین انجام بدید تا از به وجود اومدن تداخل جلوگیری کنید.
بررسی تداخل افزونه ها در مقابل نسخه وردپرس
ابتدا میخوایم بررسی کنیم که پلاگین های فعال شما با نسخه فعلی وردپرس سایت خودتون سازگاری هست یا نه. شما هم میتونید این کار رو انجام بدین:
- با کمک افزونه ای مثل افزونه کنترل بهتر سازگاری که مشکلات سازگاری رو طی به روز کردن و حتی بیشتر به طور دقیقی مشخص میکنه.
- به صورت دستی با مراجعه به بخش افزونه ها در داشبورد وردپرس و چک کردن سازگاری تک تک افزونه ها.
افزونه های ناسازگار رو در صورت وجود غیرفعال کنید. به وب سایت برگردین و بررسی کنید که آیا همه چیز به حالت عادی برگشته یا نه. اگر آره، به وضوح اختلاف بین یک افزونه و نسخه وردپرس شما باعث به وجود اومدن مشکلات در وب سایت شما شده بوده. ولی اگر خطاها همچنان ادامه دار باشن باید مراحل بعدی رو چک کنید.
بررسی تداخل افزونه ها در مقابل تم
در این مرحله بررسی میکنیم که آیا همه چیز بین پلاگین ها و قالب درست هست یا نه. فقط قبل از شروع این مرحله، یک سایت staging راه اندازی کنید. این کار خیلی ساده تر از چیزیه که به نظر میاد و به شما کمک میکنه بدون ایجاد تأثیری روی وب سایت زنده شما، تغییراتی ایجاد کنید و بررسیهای لازم رو انجام بدین. برای شروع ردیابی تداخل تم، قالب سایت خودتون رو (ترجیحاً staging) به حالت پیش فرض وردپرس تغییر بدین.
از صفحه ادمین به ‘Appearances’ –> ‘themes’ برید. پس از اونجا، تم محبوب TwentySeventeen رو فعال کنید. حالا وب سایت خودتون رو چک کنید. اگر مشکلات با تغیر قالب ناپدید شد سپس شما باز به مشکل تداخل تم برخورد کردین، قالب وب سایت زنده خودتون رو به حالت پیش فرض تغییر بدین.
برای یافتن پلاگین متناقض و رفع مشکل تداخل افزونه ها در وردپرس ، به staging برگردین و تم قبلی رو دوباره فعال کنید. افزونه ها رو یکی یکی غیرفعال کنید تا ارور از بین بره. اگر این کار رو انجام بدین افزونه مقصر پیدا میشه. حالا میل شماست، میتونید تم یا افزونه رو نگه دارین! در هر صورت با برنامه نویسان در تماس باشین و مشکلات رو گزارش بدید. اونها ممکنه بتونن این مشکل رو حل کنن. از طرف دیگه، اگر ارورها حتی پس از تغییر قالب ادامه داشت، تم اصلی شما نیز مشکل و مقصر این مسائل نیست. وب سایت شما به احتمال زیاد تداخل بین دو افزونه رو تجربه میکنه. در این حالت، تم مورد نظر خودتون رو دوباره فعال کنید و به مرحله بعد برین.
بررسی تداخل افزونه در مقابل افزونه
اکنون که نسخه وردپرس و تمها رو بررسی کردین و مطمئن شدین که مشکلی ندارن باید برین سراغ پلاگین ها. با غیرفعال کردن همه افزونه ها شروع کنید. به صفحه افزونه ها برین. با چک کردن جعبه خالی کنار ‘plugings’ همه افزونه ها رو انتخاب کنید. از منوی کشویی ‘Bulk action’، گزینه ‘Deactive’ رو انتخاب کنین. حالا به وب سایت خودتون برگردید و بررسی کنین که آیا مشکلات هنوز هستن یا نه.
اگر با غیرفعال کردن همه افزونه ها خطا از بین رفت چه عالی! اگر ماجرا به این خوبی پیش نرفت، به راحتی میشه گفت که هیچ کدوم از افزونه های شما مشکلی ندارن. در این حالت ممکنه بخواید خطای htaccess رو بررسی کنید یا با ارائه دهندهها و توسعه دهندگان داخلی خودتون تماس بگیرید. شاید وقت اون رسیده که به هاست WordPress مراجعه کنید.
پیدا کردن پلاگین های متضاد و رفع مشکل تداخل افزونه ها در وردپرس
کنسول مرورگر شما میتونه یک ستون اصلی به منظور پیدا کردن افزونه های متضاد بدون هیچگونه عیب یابی ایجاد کنه. به صفحه ای برید که با مشکلات روبرو هستین و کنسول خودتون رو باز کنید(Right click–>Inspect–>Console tab). به ارورهای قرمز توجهی نکنید. فقط از اونها اسکن بگیرین و به مسیرهای فایلها دقت کنید تا ببینید هر کدوم از اونا به افزونه های شما اشاره ای دارن یا نه. اگر کنسول مفید واقع نشد، باید به صورت دستی افزونه های متضاد رو شناسایی کنین. برای این کار باید یکی یکی افزونه ها رو فعال کنید تا ببینین مشکلات باز ظاهر میشن یا حل شدن.
برای یافتن موارد دیگه، اولین افزونه متضاد رو فعال نگه دارین. افزونه هایی که قبلاً فعال کرده بودین رو غیرفعال کنید. در این حالت، هنگامی که مشکل با غیرفعال سازی یک پلاگین دیگه از بین رفت، این پلاگین به وضوح متضاد پلاگین دیگه هست.
افزونه متضاد رو جایگزین کرده و گزارش بدید
وقتی پلاگین متضاد رو پیدا کردید، میتونید یکی از مواردی که اهمیت کمتری داره رو غیرفعال کنین. همچنین میتونید افزونه ها یا کدهای جایگزین رو برای جایگزین کردن هر یک از پلاگین های متضاد پیدا کنید. در همین حال از طریق ایمیل با توسعه دهندگان در تماس باشید و جزئیات اختلافات رو به منظور عیب یابی به اشتراک بذارین. اکثر توسعه دهندگان در تلاش هستن تا افزونه ها و تمها رو کامل کنن و بهبود ببخشن، بنابراین اونها، از اینکه شما بهشون اطلاعات مفیدی دادین خوشحال میشن.
رفع مشکل تداخل افزونه ها در وردپرس وقتی که باعث خرابی سایت شدن
صفحه سفید وردپرس، وحشتناک ترین کابوس دارندگان سایت وردپرس هست. به علاوه خرابی سایت به طور کلی باعث از دست رفتن دسترسی به پنل ادمین میشه که میتونه اتفاق ترسناکی باشه. البته روشهای مختلفی برای دسترسی به وب سایت و پنل ادمین شما وجود داره، حتی در صورت سقوط سایت شما!
از طریق مراحل زیر، ما به شما نشون میدیم: روش پروتکل امن انتقال فایل(SFTP)، که حتی بیشتر کاربران آماتور هم میتونن از طریق این روش به راحتی مشکلات رو حل کنن. برای حل مشکل تداخل افزونه ها در وردپرس وقتی که به پنل ادمین دسترسی ندارید، مراحل به شرح زیر هستن:
- یک برنامه ساده SFTP مثل FileZilaa نصب کنید.
- وب سایت خودتون رو متصل کنید.
- برای غیرفعال کردن افزونه ها و تمها به فایلها دسترسی پیدا کنید.
- اگر مجدداً به سایت دسترسی پیدا کردید، برای شروع عیب یابی از پنل ادمین وارد بشید.
- اگر سایت شما هنوز خرابه، با ارائه دهنده خودتون تماس بگیرید.
یک برنامه ساده SFTP مثل FileZilla نصب کنید
کلاینتهای SFTP مثل FileZilla به سادگی به شما امکان میده تا با دسترسی به فایلهای سایت از راه دور، اقدام به بارگیری نرم افزار مستقل و ورود به سیستم با اطلاعات خودتون کنید. به وب سایت FileZilla برید و آخرین نسخه رو نصب کنید.
وب سایت خودتون رو متصل کنید
با باز کردن برنامه، گزینه QuickConnect رو مشاهده میکنید.
روی اون کلیک کنید و اطلاعات خودتون رو وارد کنین:
- نام میزبان(host name)
- نام کاربری(username)
- رمز عبور(password)
این اطلاعات باید توسط ارائه دهنده میزبان شما به همراه اسناد راه اندازی اولیه به شما داده شده باشه. اگر این طور نیست با پشتیبانی هاست خودتون در تماس باشین.
برای غیرفعال کردن افزونه ها و تمها به فایلها دسترسی پیدا کنید
پس از اتصال، پنل ‘Remote Site’ رو در سمت راست مشاهده خواهید کرد. به پوشه ‘public_html’ برید. در این قسمت فایلهای وب سایت شما لیست شدن.
در زیراون قسمت، ‘wp-content’ و بعد در این قسمت فایلهای افزونه ها و تمها پیدا کنید. به سادگی پوشه افزونه ها رو به هرچیزی که میخواید تغییر نام بدید تا همه افزونه ها رو به طور همزمان غیرفعال کنید. همین کار رو با پوشه تم انجام بدین. وب سایت شما به طور اتومات به حالت پیش فرض تم و افزونه ها برمیگرده. حافظه cache رو پاک کنید و دوباره وب سایت رو یررسی کنین. اگر تداخل ها پشت خرابی سایت بود، باید از وب سایت و پنل ادمین شما نسخه پشتیبان تهیه بشه.
وقتی مجدداً به بخش ادمین وردپرس دسترسی پیدا کردید، با پیروی از مراحل قبل شروع به عیب یابی کنین. اگر به رغم این کارها هنوز هم مشکل داشتید، حتماً با ارائه دهنده میزبان خودتون تماس بگیرید. چون ممکنه حد حافظه سرور شما اشباع شده باشه.
پیشگیری از تداخل افزونه ها در وردپرس
اگر شما با تعداد بالایی از افزونه ها سر و کار دارید، ممکنه کار شما دشوار بشه. اما اقدامات اساسی برای پیشگیری وجود داره تا تداخل ها رو به حداقل برسونید:
- از وب سایت خودتون به طور منظم نسخه پشتیبان تهیه کنید یا مطمئن شین که ارائه دهنده هاست شما این کار رو انجام میده.
- هرگز در وب سایت زنده خودتون تغییری ایجاد نکنید. یا جای اون از یک سایت محلی یا staging استفاده کنین.
- افزونه ها رو به روز کنید.
- از به روز رسانی دسته ای یا خودکار خودداری کنید.
- تعداد پلاگین های مورد استفاده خودتون رو به تعداد افزونه هایی که واقعاً به اونها احتیاج دارید محدود کنید.
تهیه نسخه پشتیبان
باید مرتباً از وب سایت بک آپ بگیرید. اگر این کار رو به یک عادت تبدیل کنید میتونین از هر خطای احتمالی جلوگیری کنین. میتونید برای این کار موارد زیر رو انتخاب کنید:
- یک پیشنهاد قابل اعتماد که توسط ارائه دهنده میزبان خودتون ارائه شده رو انتخاب کنید.
- یک افزونه بک آپ نصب کنید.
- به طور دستی از فایلها نسخه پشتیبان تهیه کنید.
هرگز در وب سایت زنده خودتون تغییری ایجاد نکنید
برای جلوگیری از تداخل باید یک سایت محلی یا staging ایجاد کنید. هر تغیراتی حتی به روز رسانی رو اونجا انجام بدین و قبل از اینکه مستقیماً روی وب سایت زنده خودتون اعمال کنید، همه موارد رو تست کنید تا مطمئن شید مشکلی رخ نمیده. انجام این کار ساده است و باید توسط ارائه دهنده میزبان شما فعال بشه.
همیشه سایت رو به روز نگه دارید
با وجود اینکه به روز رسانیها هم ممکنه مشکلاتی رو ایجاد کنه(که بسیار نادره) ولی قدیمی بودن نسخه وردپرس، افزونه ها و تم میتونه مشکلات جدی تری رو ایجاد کنه.
از اجرای دسته ای و به روز رسانی خودکار خودداری کنید
قطعاً به روزرسانی خودکار جذابیتهای خودشو داره و باعث صرفه جویی در وقت میشه اما اصلاً به مشکلات بعدش نمیارزه و ممکنه مجبور شید ساعتها وقتتون رو به رفع مشکل تداخل افزونه ها در وردپرس اختصاص بدین. اگر به صورت تک به تک به روز کنید و بعد به مشکل برخورد کنید به راحتی متوجه میشید که کدوم پلاگین متضاد هست.
تعداد پلاگین ها رو محدود کنید
یکی از بهترین راهها برای جلوگیری از تداخل کم کردن تعداد افزونه ها به تعداد مورد نیاز هست. در اکثر موارد دیگه پلاگین ها میتونن با قطعه کدی جایگزین بشن و قبل از انجام هر کاری با توسعه دهنده خودتون در ارتباط باشید.
از اونجایی که هر افزونه از یک توسعه دهنده متفاوت میاد، تقریباً غیرممکنه که تضمینی باشه تا کد پشت پلاگین با پلاگین دیگه، تم یا نسخه وردپرس تداخل نداشته باشه. اگر شما صدها افزونه داشته باشین این مشکلات اجتناب ناپذیرن و دیر یا زود سراغ شما میان. پس به نفع شماست اگر هنوز به مشکلی برنخوردین اقدامات پیشگیرانه رو انجام بدید.