ارور Mixed Content در وردپرس یکی از مواردی است که بعد از فعال کردن پروتکل امن HTTPS یا درواقع نصب SSL در هاست ممکن است رخ دهد. این خطا همانطور که از نام آن مشخص است به این معنی خواهد بود که برخی محتوای موجود در صفحه وب به صورت مختلط بارگزاری میشوند؛ یعنی دو آدرس مختلف برای فایلها خواهیم داشت.
خطای Mixed Content چیست؟
همانطور که از عبارت Mixed در این خطا وجود دارد، به معنی مختلط بودن و در هم شدن است. عبارت content هم که بعد از آن قرار گرفته یعنی محتوایی از صفحات سایت شما به صورت کپی شده و درهم لود میشوند. اما این محتوا به این معنی نیست که نوشتههای شما در هم شده باشند؛ بلکه مربوط به آدرس انواع فایلهایی است که مربوط به افزونه یا قالب هستند.
این خطا همانطور که اشاره کردم بعد از نصب SSL در وردپرس رخ میدهد. آدرسهای سایت شما پیش از این با پروتکل HTTP لود میشدند که این پروتکل امن نیست. با نصب SSL آدرس تمامی فایلها به HTTPS تغییر میکند تا قفل سبز رنگی که پیش از این در مرورگرهایی نظیر کروم نمایش داده میشد و حالا صرفاً یک آیکون قفل قبل از آدرس نمایش داده میشود بهدرستی کار کند.
اما وقتی ارور Mixed Content رخ دهد خبری از این قفل نبوده و با یک آیکون i در مرورگر مشابه تصویر بالا مواجه خواهید بود. در نتیجه برای رفع این مشکل تنها کافی است بررسی کرده و ببینید که چه آدرسهایی از سایت همچنان با HTTP لود میشوند که آنها را به HTTPS اصلاح کنید.
آموزش رفع ارور Mixed Content
برای برطرف کردن این خطا باید به زمانی که SSL را در وردپرس نصب کردید برگشته و مطمئن شوید که کوئری مربوط به اصلاح آدرسها را از طریق دیتابیس انجام داده باشید که این مورد در وردپرس با نسخههای پایینتر لازم بود.
اما در نسخههای جدید بالاتر از ۴ وقتی تصمیم میگیرید که آدرس سایت را به HTTPS تغییر دهید، صرفاً بعد از وارد کردن این پروتکل در تنظیمات عمومی وردپرس کلیه آدرسها تغییر یافته و اصلاح میشوند.
اما گاهی اوقات ممکن است که از افزونه یا کدنویسی که قالب شما دارد، از توابع قدیمی یا نامناسب استفاده شده باشد که این جایگزینی صورت نگیرد. در نتیجه برای رفع خطا تنها باید آنها را اصلاح کنید.
گام اول: بررسی سورس سایت و اصلاح کدها
برای این منظور قبل از هرچیزی باید سورس سایت خود را بررسی کنید. در صفحه سایت راست کلیک کرده و سپس گزینه View page source را انتخاب کنید. در این صورت کدهای سایت را خواهید دید. از طریق دکمههای CTRL + F عبارت //:http را جستجو کنید و به دنبال بخشهایی باشید که آدرسها به این شکل لود میشوند.
این آدرس میتواند در محتوای نوشته، ابزارکها، بخشهای مختلف قالب یا خروجی اطلاعاتی که از طریق افزونهها انجام میگیرد باشد. پس برای رفع آن میتوانید از دیتابیس وردپرس استفاده کرده و بسته به مکان استفاده شده ارور Mixed Content را برطرف کنید. اما خب مسئله اینجاست که این موضوع تخصصی است؛ بنابراین بهتر است از گام دوم کمک بگیرید.
گام دوم: استفاده از افزونه
برای این کار میتوانید از افزونه Really Simple SSL وردپرس یا همان SSL واقعاً ساده وردپرس که تا به امروز بیش از یک میلیون نصب را به خود اختصاص داده استفاده کنید.
این افزونه به صورت اجباری آدرسهایی که مربوط به دامنه خود سایت هستند را به صورت HTTPS لود کرده و به کاربر نمایش خواهد داد؛ در نتیجه در صفحه سایت دیگر خبری از لود همزمان اطلاعات از هر دو پروتکل HTTP و HTTPS نبوده و دیگر با خطای Mixed Content در وردپرس مواجه نخواهید شد.