خطای Pluggable.php در وردپرس یکی از خطاهایی است که معمولا در هنگام افزودن یک قطعه کد در فایل فانکشن قالب، بهروزرسانی وردپرس و یا آپدیت یکی از افزونههای وردپرس ممکن است تا در سایت شما رخ دهد. این خطا معمولا در چنین زمانهایی رخ میده که یک ناسازگاری بین فایل فانکشن قالب وردپرس و یا یکی از افزونههای وردپرس در سایت شما پیش بیاد که منجر به نمایش چنین خطایی در پیشخوان وردپرس و یا حتی بخش کاربری سایت شما شود که مشابه تصویر زیر در سایت رخ خواهد داد.
همونطور که در تصویر مشاده میکنید در این قطعه کد گفته شده که خطایی در خط ۱۳۵ افزونهای با نام some-plugin رخ داده که باعث شده تا یک ناسازگاری در خط ۱۱۷۹ از فایل Pluggable.php پیش بیاد، حالا شما میبایست خط ۱۳۵ از فایل افزونه مورد نظر را بررسی کنید و بعد از مطابقت دادن با خط ۱۱۷۹ از فایل Pluggable.php ببینید مشکل به خاطر چیه تا اونو برطرف کنید.
فایل Pluggable.php یکی از فایلهای اصلی هسته وردپرس هستش که لازمه تا در روی سایت شما وجود داشته باشه و اگر هنگامی که با خطایی در این فایل مواجه شدید که دقیقا اشارهای به این داشت که یکی از خطوط این فایل دارای مشکل است هم نباید این فایل را ویرایش کنید، چرا که مشکل از جای دیگهای خواهد بود. اگر هم این فایل را قبلا ویرایش کردید بسته به نسخه وردپرس که از اون استفاده میکنید میبایست وردپرس را دانلود کرده و سپس فایل مورد نظر را مجددا در هاست خودتون بارگذاری کنید و به دنبال رفع مشکل از جای دیگهای باشید.
این خطا صرفا محدود به بخش کاربری سایت نبوده و ممکنه تا در پیشخوان وردپرس هم با اون مواجه بشید طوری که همه بخشهای پیشخوان به درستی نمایش داده شوند اما خط مربوط به خطا در تمامی صفحات پیشخوان وردپرس مشابه تصویر زیر براتون به نمایش دربیاد.
آموزش رفع خطای Pluggable.php در وردپرس
همونطور که در بالا اشاره کردم این خطا ممکنه تا در یک قطعه کدی که در فایل فانکشن قرار دادین بوجود بیاد و یا اینکه در هنگام نصب یا بهروزرسانی یکی از افزونههای وردپرس با اون مواجه شوید که باعث ایجاد ناسازگاری با فایل Pluggable.php شده باشد. پس برای رفع خطا عموما ما چند راهکار ساده خواهیم داشت که توسط این راهکارها میتونیم تا نسبت به رفع خطای Pluggable.php در وردپرس اقدام کنیم. پس قبل از هرکاری باید خطا را بررسی کرده و ببینید که مشکل از سمت فایل فانکشن رخ داده و یا اینکه از سمت افزونه وردپرس با اون مواجه شدید.
اگر که اخیرا با افزودن قطعه کدی در فایل فانکشن این مشکل به وجود اومده می تونید تا با ویرایش و تغییر در قطعه کد اضافه شده مشکل را برطرف کنید. به عنوان نمونه مثال زیر را در نظر بگیرید.
Warning: Cannot modify header information – headers already sent by (output started at /home/username/demosite/wp-content/themes/mytheme/functions.php:1035) in /home/username/demosite/wp-includes/pluggable.php on line 1179
همینطور که در این مثال مشاهده میکنید خطای ما در فایل functions.php درست در خط ۱۰۳۵ رخ داده که به این معنی خواهد بود که برای رفع خطا شما باید فایل فانکشن قالب را باز کرده و به خط ۱۰۳۵ اون مراجعه کنید و ببینید که کدنویسی صورت گرفته در این خط چه ایرادی داره تا اونو برطرف کنید. معمولا در چنین مواردی کاراکترهای اضافی، فاصله و… دخیل هستند که سهوا در کد اضافه شدهاند. فایل فانکشن به عنوان یکی از فایلهای اصلی قالب وردپرس هستش که با تغییر در قالب وردپرس میتونید تا مشکل را برطرف کنید.
از اونجایی که برای رفع مشکل زمان نیاز خواهید داشت میتونید تا با مراجعه به پیشخوان وردپرس قالب مورد نظر را موقتا غیرفعال کنید. اگر هم به پیشخوان وردپرس دسترسی ندارید وارد هاست خود شده و سپس به File Manager هاست مراجعه کنید.
حالا به مسیر /public_html/wp-content/themes/ مراجعه کرده و نام پوشه قالب فعلی که در اون با خطا مواجه شدید را به یک نام دیگه تغییر بدین تا قالب غیرفعال شده و قالب پیشفرض وردپرس جایگزین آن شود.
اما گاهی هم پیش میاد که مشکل از قالب نیست و دلیل رخ دادن اون از افزونهای که اخیرا نصب کردید و یا اینکه اونو بهروزرسانی کردید رخ داده است. در این مورد هم میتونید درست مثل قالب عمل کرده و در ابتدا اگر میدونید که بعد از نصب و یا آپدیت افزونهای که اخیرا اونو به سایت اضافه کردید این خطا رخ داده افزونه را غیرفعال کنید.
Warning: Cannot modify header information – headers already sent by (output started at /home/username/demosite/wp-content/plugins/some-plugin-name/some-plugin.php:144) in /home/username/demosite/wp-includes/pluggable.php on line 1090
اگر هم مانند وقتی که خطا از قالب سایت است و به پیشخوان وردپرس دسترسی ندارید میتونید تا وارد هاست شده و بعد از ورود به بخش File Manager به مسیر /public_html/wp-content/plugins/ مراجعه کرده و نام پوشه افزونهای که فکر میکنید ایراد از اونه را تغییر نام دهید. اما اگر نمیدونید که مشکل دقیقا از کدوم افزونه است میتونید تا کلیه افزونهها را با تغییر نام پوشه Plugins غیرفعال کرده و بعد از ورود به پیشخوان وردپرس یکی یکی افزونهها را فعال کرده و در هربار سایت را بررسی کنید تا به افزونهای که باعث ایجاد مشکل شده برسید.
باز هم تکرار میکنم که در هر صورت نباید هیچگونه تغییری در فایل Pluggable.php اعمال کنید، چرا که این فایل جزو فایلهای اصلی در هسته وردپرس خواهد بود و با تغییر اون مطمئنا شاید ظاهرا مشکل شما برطرف بشه اما در آینده مشکلات دو چندان شده و در خیلی از بخشهای دیگه سایت دچار خطای Pluggable.php در وردپرس خواهید شد.
روشهای پیشرفتهتر برای رفع خطای Pluggable.php در وردپرس
در صورتی که با روشهای ابتدایی مثل غیرفعالسازی افزونه یا قالب نتوانستید خطای مربوط به Pluggable.php را رفع کنید، میتوانید از روشهای زیر برای بررسی دقیقتر و رفع مشکل استفاده کنید:
۱. فعالسازی حالت دیباگ در وردپرس
برای شناسایی دقیقتر منبع خطا، میتوانید حالت اشکالزدایی یا Debug را در وردپرس فعال کنید. این کار به شما اجازه میدهد تا جزئیات بیشتری از خطاها را در فایل debug.log مشاهده کنید.
مراحل فعالسازی دیباگ:
وارد هاست خود شوید و فایل wp-config.php را باز کنید.
به دنبال خط زیر بگردید (اگر نبود، اضافهاش کنید):
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
حالا به مسیر /wp-content/ در هاست بروید و فایل debug.log را بررسی کنید.
این فایل شامل لاگ کاملی از خطاهای وردپرس است که به شما کمک میکند مکان دقیق خطا و دلیل آن را متوجه شوید.
۲. بررسی تداخل بین افزونهها
در برخی موارد، تداخل بین چند افزونه باعث بروز این خطا میشود. بهترین راه برای شناسایی این مشکل:
همه افزونهها را غیرفعال کنید.
سایت را بررسی کنید؛ اگر مشکل رفع شد، یکی یکی افزونهها را فعال کنید تا مشخص شود کدام یک باعث خطا شده است.
پس از شناسایی افزونه مشکلدار، به صفحه رسمی افزونه در مخزن وردپرس مراجعه کرده و ببینید آیا کاربر دیگری هم چنین مشکلی را گزارش کرده یا نه.
۳. بررسی کاراکترهای غیرمجاز (whitespace)
یکی از رایجترین دلایل خطای headers already sent by… در فایل Pluggable.php، وجود کاراکترهای فاصله یا خطوط خالی قبل از شروع یا بعد از پایان کد PHP در فایلهاست.
به این نکته توجه کنید:
فایلهایی مثل functions.php یا فایل افزونههایی که ویرایش کردهاید، نباید هیچ فضای خالی قبل از <?php یا بعد از ?> داشته باشند.
بهترین کار این است که بهکلی از تگ بسته شدن ?> در انتهای فایلهای PHP صرفنظر کنید تا از این مشکل جلوگیری شود.
۴. بازگردانی نسخه سالم از قالب یا افزونه
اگر متوجه شدید که مشکل بعد از ویرایش یا آپدیت یک قالب یا افزونه خاص ایجاد شده:
نسخهای از قبل آن را که سالم بود، مجدد بارگذاری و جایگزین کنید.
در صورت نیاز از مخزن وردپرس نسخههای قبلی را دریافت کرده و آپلود کنید.
۵. بررسی سازگاری نسخه وردپرس با قالب و افزونهها
برخی از افزونهها یا قالبها با نسخههای خاصی از وردپرس سازگاری ندارند. اگر اخیراً وردپرس را بهروزرسانی کردهاید:
مطمئن شوید که قالب و افزونههای شما نیز با نسخه جدید سازگار هستند.
در صورت ناسازگاری، منتظر بهروزرسانی توسعهدهنده یا استفاده از نسخههای قبلی باشید.
جمع بندی
خطای Pluggable.php یک خطای رایج ولی قابل حل در وردپرس است که در اکثر موارد با رعایت اصول ساده مثل عدم دستکاری فایلهای هسته، بررسی خطاهای functions.php و بررسی تداخل بین افزونهها قابل حل است.
اما اگر با بررسیهای اولیه به نتیجه نرسیدید، فعالسازی حالت دیباگ، حذف فاصلههای اضافه، و بازگرداندن نسخه سالم قالب یا افزونهها میتوانند به شما کمک کنند.