أين تقوم بتضمين Firphep في WordPress؟
سؤال
أنا استخدم require_once()
في header.php لتشمل مكتبة Firpeph. في page.php أفعل المعتاد ...
$firephp = FirePHP::getInstance(true);
$firephp->log($categories);
الحصول على هذه الأخطاء ..
'Headers already sent....'
و
Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive...
كنت أحسب أن استخدام require_once في رأس القالب. أعتقد أن هذا ليس هو الحال.
أي شخص لديه خبرة في هذا؟ (PS لقد جربت البرنامج المساعد WP Firephp ، لم أكن يعمل بشكل صحيح)
المحلول
يستخدم FirephP رؤوس الإخراج لنقل بيانات تصحيح الأخطاء إلى المتصفح. لذلك require_once()
البيان ليس هو المشكلة ، ولكن حقيقة قيامك بتسجيل الدخول page.php
, ، عند هذه النقطة تم بالفعل إخراج HTML. لا تحتاج فقط إلى تضمين FirephP قبل إرسال أي محتوى - تحتاج أيضًا إلى القيام بجميع التسجيل قبل إرسال المحتوى أيضًا.
الحل المعتاد هو الاحتفاظ بأي إخراج إلى المتصفح باستخدام التخزين المؤقت للإخراج و ob_*
عائلة الوظائف. هذا يمكّنك من إرسال الرؤوس على الرغم من ذلك echo()
تم بالفعل إصدار الأوامر (وأعجوبة).
أظن أن القيام بكل هذا بأمان هو ما تم صنعه المكون الإضافي WP_FIREPHP. أوصي بإلقاء نظرة ثانية على هذا البرنامج المساعد.
نصائح أخرى
وضع
<?php
require_once(/FirePHPCore/FirePHP.class.php');
ob_start();
?>
في الجزء العلوي من ملف رأسك.