Где вы включаете FirePHP в Wordpress?

Я использую require_once() в header.php для включения библиотеки FirePHP. В 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 в header.php шаблона (прежде всего вывод HTML) будет безопасным (предварительный вывод заголовка). Думаю, это не так.

У кого-нибудь есть опыт в этом? (P.S. Я попробовал плагин WP FirePHP, он не работал)


person GN.    schedule 28.03.2010    source источник
comment
Какой header.php вы имеете ввиду, тот что в шаблоне?   -  person Pekka    schedule 28.03.2010


Ответы (2)


FirePHP использует выходные заголовки для передачи отладочных данных в браузер. Таким образом, проблема не в операторе require_once(), а в том, что вы регистрируетесь в page.php, после чего HTML уже был выведен. Вам нужно не только включить FirePHP перед отправкой любого контента, но и выполнить все журналы перед отправкой контента.

Обычный обходной путь — удерживать любой вывод в браузере, используя буферизацию вывода и семейство функций ob_*. Это позволяет вам отправлять заголовки, даже если echo() команды (и им подобные) уже были выполнены.

Я предполагаю, что сделать все это безопасно — это то, для чего был создан плагин WP_FirePHP. Я бы порекомендовал еще раз взглянуть на этот плагин.

person Pekka    schedule 28.03.2010
comment
Изменение директивы output_buffering на On в php.ini помогло мне. (также я использовал плагин wp-firephp для Wordpress) - person leeand00; 01.02.2011
comment
по-видимому, в разделе администратора WordPress он очистит заголовки и / или содержимое ob_*, и поэтому иногда кажется, что это нарушает работу FirePHP. - person cwd; 17.10.2011

Ставить

<?php
require_once(/FirePHPCore/FirePHP.class.php');
ob_start();
?>

в верхней части файла заголовка.

person Fred K    schedule 30.04.2013