post title

آموزش پنهان کردن خطاهای php وردپرس

خطاهای PHP در وردپرس چیست؟ خطاهایی هستند که به‌علت وجود مشکلات در کدهای PHP که برای توسعه وب‌سایت با استفاده از وردپرس نوشته شده‌اند، ایجاد می‌شوند. این خطاها ممکن است به‌دلیل عدم تطابق نسخه‌ی PHP با نسخه‌ی وردپرس، پلاگین‌های نادرست، قالب‌های نامناسب یا اشکالات دیگری در کد‌های PHP باشند. این خطاها ممکن است با روش‌های […]

آموزش پنهان کردن خطاهای php وردپرس

توییتر تلگرام

خطاهای PHP در وردپرس چیست؟ خطاهایی هستند که به‌علت وجود مشکلات در کدهای PHP که برای توسعه وب‌سایت با استفاده از وردپرس نوشته شده‌اند، ایجاد می‌شوند. این خطاها ممکن است به‌دلیل عدم تطابق نسخه‌ی PHP با نسخه‌ی وردپرس، پلاگین‌های نادرست، قالب‌های نامناسب یا اشکالات دیگری در کد‌های PHP باشند. این خطاها ممکن است با روش‌های مختلفی مانند نمایش پیام خطا در صفحه وب، ثبت خطا در فایل خطای لاگ (error log)، یا استفاده از افزونه‌های مدیریت خطا رفع شوند.

نمایش خطاهای PHP در محیط وردپرس به توسعه دهندگان کمک می‌کند تا از هشدارها و مشکلات مربوط به کدهایی که نوشته‌اند، آگاه شوند و آنها را رفع کنند. با این حال، باید توجه داشت که کاربران عادی هدف این پیام‌ها نیستند و وقتی با آن‌ها مواجه می‌شوند، تجربه‌ی نامطلوبی برایشان ایجاد می‌شود.

این قابلیت البته مفید است، اما بهتر است رویت هشدارها را غیرفعال کنید تا سوءتفاهم و بی‌اعتمادی مشتریان به شما نسبت به وبسایت یا برنامه‌ی شما کاهش یابد. در این مقاله از مجله پارس هاست چگونگی رفع نمایش ارورهای PHP وردپرس و تفاوت آن را با خاموش کردن دیباگ توضیح می‌دهیم. همچنین کدهای مورد نیاز در فایل wp-config.php، روش ثبت خطاها در debug.log و نحوه فعال کردن دوباره نمایش خطاها برای عیب‌یابی را بررسی خواهیم کرد.

پنهان کردن خطاهای php در وردپرس یا خاموش کردن!

در وردپرس، پنهان کردن خطاهای PHP در وردپرس با خاموش کردن آن‌ها یکسان نیست. وقتی دیباگ وردپرس را خاموش می‌کنید، قابلیت عیب‌یابی وردپرس غیرفعال می‌شود. با مخفی کردن خطاها، دیباگ می‌تواند فعال بماند و فقط نمایش پیام‌های فنی برای بازدیدکنندگان متوقف شود. با غیرفعال‌کردن خطاهای php در وردپرس می‌توانید نمایش خطا را غیرفعال و ثبت آن‌ها در لاگ را فعال کنید. اما اگر در حال حاضر نیازی به بررسی خطاها ندارید، غیرفعال کردن WP_DEBUG  انتخاب ساده‌تری است.

پنهان کردن خطاهای php در وردپرس یا خاموش کردن!

کدهای پنهان کردن و خاموش کردن خطاهای PHP وردپرس

کدهای اصلی مربوط به دیباگ وردپرس معمولا در فایل wp-config.php  قرار می‌گیرند. بهتر است تنظیمات مورد نظر را قبل از خط زیر قرار دهید:

/* That’s all, stop editing! Happy publishing. */

۱. خاموش کردن دیباگ وردپرس

اگر سایت شما بدون مشکل کار می‌کند و در حال حاضر نیازی به بررسی خطاهای PHP ندارید، می‌توانید حالت دیباگ وردپرس را غیرفعال کنید:

define( ‘WP_DEBUG’, false );

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

البته WP_DEBUG  کنترل همه خطاهای PHP را در اختیار ندارد. تنظیمات PHP و وب‌سرور نیز می‌توانند روی نحوه نمایش یا ثبت خطاها تاثیر بگذارند. بنابراین غیرفعال کردن دیباگ وردپرس به این معنی نیست که خطاهای بحرانی PHP دیگر نمی‌توانند روی سایت اثر بگذارند.

مثال: یک خطای Fatal همچنان می‌تواند باعث اختلال یا از دسترس خارج شدن بخشی از سایت شود.

۲. مخفی کردن خطاها و ثبت آن‌ها در لاگ

اگر سایت فعال است اما می‌خواهید خطاهای PHP برای بازدیدکنندگان نمایش داده نشوند و در عین حال بتوانید آن‌ها را بررسی کنید، بهتر است دیباگ را فعال و نمایش خطا را غیرفعال کنید:

define( ‘WP_DEBUG’, true );

define( ‘WP_DEBUG_DISPLAY’, false );

define( ‘WP_DEBUG_LOG’, true );

در این حالت، وردپرس خطاها و پیام‌های قابل ثبت را در فایل لاگ ذخیره می‌کند، اما آن‌ها را در صفحات سایت نمایش نمی‌دهد.

فایل لاگ پیش‌فرض وردپرس معمولا در مسیر زیر قرار می‌گیرد:

/wp-content/debug.log

این روش برای عیب‌یابی سایت وردپرسی در محیط واقعی کاربردی است. چون کاربران پیام‌های فنی را نمی‌بینند و مدیر یا توسعه‌دهنده می‌تواند فایل لاگ را برای پیدا کردن علت مشکل بررسی کند.

۳. اگر خطاها همچنان نمایش داده شدند

اگر با وجود تنظیمات بالا بعضی خطاهای PHP همچنان در سایت نمایش داده می‌شوند، ممکن است تنظیمات PHP یا وب ‌سرور باعث نمایش آن‌ها شده باشد.

یکی از تنظیمات مهم PHP در این زمینه display_errors  است. در صورت دسترسی به تنظیمات PHP می‌توانید وضعیت آن را بررسی کنید:

ini_set( ‘display_errors’, ‘0’ );

با این حال، بهتر است این دستور را راه‌حل اصلی در نظر نگیرید. تنظیمات display_errors  ممکن است توسط پیکربندی PHP، هاست یا وب‌سرور کنترل شود و در بعضی محیط‌ها تغییر آن از داخل کد امکان‌پذیر نباشد.

اگر به تنظیمات PHP دسترسی دارید، بهتر است مقدار display_errors  را در همان سطح بررسی کنید. در هاست‌های اشتراکی نیز ممکن است برای تغییر این تنظیم به پنل هاست وردپرس یا پشتیبانی سرویس نیاز داشته باشید.

۴. آیا می‌توانیم Warning و Notice را جداگانه مخفی کنیم؟

بله، با error_reporting()  می‌توان مشخص کرد PHP چه نوع خطاهایی را گزارش کند.

مثال:

error_reporting( E_ALL & ~E_WARNING & ~E_NOTICE );

این کد Warning و Notice را از سطح گزارش‌دهی حذف می‌کند، اما با مخفی کردن خطاها از خروجی تفاوت دارد. در اینجا نوع پیام‌هایی که PHP گزارش می‌کند تغییر کرده است.

بنابراین اگر هدف شما فقط عدم نمایش خطاهای PHP در وردپرس به بازدیدکنندگان است، بهتر است به‌جای تغییر سطح گزارش‌دهی PHP، از تنظیمات WP_DEBUG_DISPLAY  و در صورت نیاز WP_DEBUG_LOG  استفاده کنید.

تفاوت خاموش کردن و پنهان کردن خطاهای php وردپرس

خاموش کردن دیباگ مخفی کردن خطا ویژگی
false true WP_DEBUG
غیرفعال در حالت عادی غیرفعال نمایش خطا به بازدیدکننده
معمولا غیرفعال فعال ثبت خطا در لاگ
محدودتر بیشتر امکان بررسی خطاها
سایت بدون نیاز به دیباگ عیب‌یابی سایت بدون نمایش خطا به کاربران کاربرد اصلی

 کدام روش برای سایت وردپرسی بهتر است؟

  •   سایت فعال و بدون مشکل: اگر فعلا نیازی به بررسی خطاها ندارید، WP_DEBUG  را روی false  قرار دهید.

define( ‘WP_DEBUG’, false );

  •   در حال عیب‌یابی سایت: اگر می‌خواهید خطاها را بررسی کنید اما کاربران آن‌ها را نبینند، WP_DEBUG را فعال، WP_DEBUG_DISPLAY را غیرفعال و WP_DEBUG_LOG  را فعال کنید.

define( ‘WP_DEBUG’, true );

define( ‘WP_DEBUG_DISPLAY’, false );

define( ‘WP_DEBUG_LOG’, true );

در این حالت، خطاهای قابل ثبت در لاگ ذخیره می‌شوند و می‌توانید بعدا علت مشکل را بررسی کنید.

آیا مخفی کردن خطا به معنی رفع آن است؟

خیر. مخفی کردن خطا فقط نمایش آن را متوقف می‌کند و مشکل PHP را برطرف نمی‌کند. اگر یک خطای PHP باعث اختلال در سایت شده باشد، باید علت آن را از طریق فایل‌های لاگ و ابزارهای عیب‌یابی پیدا و برطرف کنید. پنهان کردن پیام خطا بیشتر برای جلوگیری از نمایش اطلاعات فنی به بازدیدکنندگان کاربرد دارد.

نکات امنیتی هنگام پنهان کردن خطاهای PHP

نمایش خطاهای PHP ممکن است اطلاعات فنی سایت را در اختیار افراد غیرمجاز قرار دهد و بخشی از امنیت سرور را تحت تاثیر قرار دهد؛ برای مثال مسیر فایل‌ها، نام فایل‌های PHP یا بخشی از اطلاعات محیط سرور. به همین دلیل، در سایت‌های عملیاتی بهتر است خطاهای فنی در صفحات عمومی نمایش داده نشوند.

همچنین اگر WP_DEBUG_LOG  را فعال کرده‌اید، فقط مخفی کردن خطا از صفحه کافی نیست. باید دسترسی به فایل debug.log را نیز بررسی کنید تا افراد غیرمجاز نتوانند محتوای آن را مستقیما مشاهده کنند.

نکته: قبل از ویرایش فایل wp-config.php  بهتر است از فایل و سایت خود نسخه پشتیبان تهیه کنید. یک خطای نحوی در این فایل می‌تواند باعث از دسترس خارج شدن سایت شود.

روشن کردن نمایش خطاهای PHP

به عنوان یک توسعه دهنده و یا کدنویس قطعا شرایطی پیش می‌آید که قصد داشته باشید وضعیت سایت را برای ارزیابی صحت عملکرد قالب و افزونه ها بررسی کنید. همین‌طور ممکن است سایت شما در یک سرور محلی – Local Server فعال باشد که در هر دو صورت نمایش خطاهای PHP ضروری بنظر می رسد.

اگر قصد دارید خطاهای PHP را در سایت خود نمایش دهید باید مجددا فایل wp-config.php را ویرایش و کدهای قبلی را حذف کنید.

define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_DISPLAY’, true);
پس از وارد کردن کدهای جدید، وردپرس خطاهای PHP را برای شما به نمایش در خواهد آورد.

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

در صورتی که توسعه دهنده افزونه و قالب وردپرس هستید و یا وبسایت شما بر روی لوکال سرور درحال بازبینی است، می‌توانید از نمایش هشدارها و خطاهای فوق برای عیب‌یابی و Debug کدها مطمئن شوید.

سوالات متداول

۱. خطاهای PHP در وردپرس چیست؟

خطاهای PHP در وردپرس معمولا به دلیل مشکلات موجود در کد PHP، ناسازگاری نسخه PHP با وردپرس، قالب یا افزونه‌های ناسازگار و خطاهای برنامه‌نویسی ایجاد می‌شوند.

۲. چگونه خطاهای PHP را در وردپرس مخفی کنیم؟

با قرار دادن WP_DEBUG روی true و WP_DEBUG_DISPLAY روی false می‌توانید دیباگ را فعال نگه دارید، اما نمایش خطاها برای بازدیدکنندگان را غیرفعال کنید. برای ثبت خطاها نیز می‌توانید WP_DEBUG_LOG را روی true قرار دهید.

مطالب پیشنهادی

سرعت سایت فقط یک عدد در گزارش‌های فنی نیست و مستقیما روی تجربه کاربر، نرخ خروج از صفحه، میزان تعامل و حتی عملکرد سایت در نتایج جستجوی گوگل اثر می‌گذارد. وقتی باز شدن یک صفحه بیشتر از حد انتظار طول بکشد، بسیاری از کاربران قبل از دیدن محتوا سایت را ترک می‌کنند و سراغ نتیجه […]

۲۰۲۶/۰۸/۳۰
۵

می‌خواهید قبل از خرید هاست واقعی، وردپرس را امتحان کنید؟ یا فقط دلتان می‌خواهد یاد بگیرید وردپرس چطور کار می‌کند و قالب اختصاصی خودتان را بسازید؟ لازم نیست پول خرج کنید. نصب وردپرس روی لوکال هاست یعنی راه‌اندازی یک نسخه‌ی کامل از وردپرس روی همان کامپیوتر خودتان، بدون نیاز به اینترنت یا هزینه میزبانی. فقط […]

۲۰۲۶/۰۸/۲۵
۰

گاهی لازم است یک سایت وردپرسی را برای همیشه حذف کنید؛ مثلا قصد دارید سایت جدیدی راه اندازی کنید، وردپرس را روی دامنه دیگری نصب کنید یا وقتی دیگر به اطلاعات سایت قبلی نیازی ندارید. در چنین شرایطی، فقط پاک کردن فایل‌های وردپرس کافی نیست و برای حذف کامل وردپرس باید فایل‌ها، پایگاه داده و […]

۲۰۲۶/۰۸/۲۴
۰

وردپرس نوعی سیستم مدیریت محتوای متن‌باز و رایگان است که زیرساخت لازم برای طراحی، ساخت و مدیریت انواع وب‌سایت‌ها را بدون نیاز به مهارت‌های پیچیده کدنویسی فراهم می‌کند. بر اساس آمارهای سال ۲۰۲۶، بیش از ۴۱.۲ درصد از کل وب‌سایت‌های جهان یعنی رقمی حدود ۵۰۰ میلیون سایت دقیقا روی همین پلتفرم بنا شده‌اند. اما چه […]

۲۰۲۶/۰۸/۲۳
۰

افزایش سرعت سایت وردپرسی با روش‌های مختلفی مانند پیکربندی صحیح افزونه‌های بهینه‌سازی، بهینه‌سازی تنظیمات وب‌سرور، فشرده‌سازی فایل‌ها، بهینه‌سازی تصاویر و سایر تکنیک‌های مرتبط امکان‌پذیر است. هر یک از این روش‌ها مزایا و محدودیت‌های خاص خود را دارند و بهترین نتیجه زمانی حاصل می‌شود که به‌صورت اصولی و در کنار یکدیگر به کار گرفته شوند. در […]

۲۰۲۶/۰۸/۱۶
۰
۰ نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *