ریدایرکت در وردپرس و رفع خطای headers already sent

1 امتیاز2 امتیاز3 امتیاز4 امتیاز5 امتیاز 11 امتیاز
Loading...

بسم الله الرحمن الرحیم.
جایی که از وردپرس استفاده میشه ، استفاده از توابعی php ی مثل Header کار صحیحی شاید نباشه،چرا؟چون هر بستر توسعه ای راه هایی برای راحتی کار کدنویس تدارک دیده،مثل کلاس wpdb و یا wp_redirect یا موارد مشابه.پس بهتره که از مسیر تدارک دیده شده حرکت کنیم تا کارمون استاندارد باشه.
خب این پست برای این نوشته شده که نحوه رفع خطای زیر رو بده:

Warning: Cannot modify header information - headers already sent by (output started at ...

علت این خطا موارد متعددی میتونه باشه،گاها با ذخیره فایلهای مربوطه به صورت utf8 with out BOM این خطا رفع میشه.

اما مواقعی هست که نیاز به ریدارکت و یا هدایت کاربر دارید،قطعا طبق توصیه اول نیاز هست از تابع wp_redirect یا wp_safe_redirect استفاده بشه،این دوتا تابع هم از تایع header در PHP استفاده می کنند که ید طویلی در این نوع خطاها داره!

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

 

اما راه حل.

روش رفع خطای سشن در وردپرس

function ob_start_at_wp_init() {
	ob_start();
}
add_action('init', 'ob_start_at_wp_init');

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

کد بالا رو در فایل توابع قالب یا functions.php بگذارید.

بخوانید:  راه های درآمد زایی از وردپرس را بدانیم 1
سفارش پلاگین وردپرس

2 نظر در “ریدایرکت در وردپرس و رفع خطای headers already sent

نظرات شما را پذیراییم

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

*

*

Time limit is exhausted. Please reload CAPTCHA.