Поддержка BuddyPress Cannot modify header information… _inc/ajax.php:142

  • При отправке нового сообщения в ленте группы выпадают ошибки:

    Warning: Cannot modify header information — headers already sent by (output started at /var/www/site/data/www/site.ru/wp-content/themes/name/_inc/ajax.php:142) in /var/www/site/data/www/site.ru/wp-includes/pluggable.php on line 693

    Warning: Cannot modify header information — headers already sent by (output started at /var/www/site/data/www/site.ru/wp-content/themes/name/_inc/ajax.php:142) in /var/www/site/data/www/site.ru/wp-includes/pluggable.php on line 694

    Warning: Cannot modify header information — headers already sent by (output started at /var/www/site/data/www/site.ru/wp-content/themes/name/_inc/ajax.php:142) in /var/www/site/data/www/site.ru/wp-includes/pluggable.php on line 695

    Шаблон свой, основанный на стандартном баддипрессовском. В принципе, ничего особо не менялось в функционале баддипресса. В инете таких ошибок хватает, но решения я так и не нашел.
    Если вылечить никак нельзя, то подскажите, как скрыть эти предупреждения, чтобы пользователи не пугались. Само сообщение нормально отправляется

Просмотр 15 ответов — с 1 по 15 (всего 20)
  • FAQ читайте

    Да-да. ФАК читайте, поиском пользуйтесь. Плавали — знаем.
    Я как раз после всего этого и пришел сюда. О чем, собственно, написано в тексте

    Вот кусок файла

    if ( bp_has_activities ( 'include=' . $activity_id ) ) : ?>
    142-->		<?php while ( bp_activities() ) : bp_the_activity(); ?>
    			<?php locate_template( array( 'activity/entry.php' ), true ) ?>
    		<?php endwhile; ?>
    	 <?php endif;
    }

    Как-то чудно, конечно, сделано. Файл оригинальный, из дистрибутива. Соответственно, ошибка не в нём, а где-то еще.

    Модератор Yuri

    (@yube)

    Вот кусок файла

    Какого? ajax.php?

    Да

    Модератор Yuri

    (@yube)

    Тогда смотрим. В конце 141-й строки выводится перевод строки и две табуляции. В конце 142-й — перевод строки и три табуляции. И так далее. Зачем?! Говнокод, одним словом 🙁

    Хм, надо это все вычистить?
    Ну код да, очень интересно написан. Зачем здесь конструкции <?php … ?>
    мне совсем не понятно

    Модератор Yuri

    (@yube)

    Хм, надо это все вычистить?

    Разумеется.

    Зачем здесь конструкции <?php … ?>

    Чтобы ошибку давать.

    Уффф… стер первый вариант сообщения. Вторая попытка:

    Плохо, значит, читали. Про то, что ошибку порождают переводы строк за пределами <?php ?>, там написано. Кто ж вам виноват-то, что вы этого не поняли?

    Я не мог даже и представить, что в плагине, которым пользуются сотни человек, такие косяки.
    Вот здесь нет такой проблемы — http://wpme.ru/ ?
    Посмотрите код, он такой же.

    ajax.php я поправил таким образом:

    if (bp_has_activities('include=' . $activity_id))
    		{
    		while (bp_activities())
    			{
    				bp_the_activity();
    				locate_template(array('activity/entry.php'), true);
    			}
    	 	}
    }

    Теперь ошибку выдаёт такую же, но с другим файлом, который вызывается этим кодом — activity/entry.php
    Ругается на вторую строку. Вот код(уже слегка причесанный) начиная с первой строки файла:

    <?php do_action('bp_before_activity_entry'); ?>
    <li class="<?php bp_activity_css_class(); ?>" id="activity-<?php bp_activity_id(); ?>">
    	<div class="activity-avatar">
    		<a href="<?php bp_activity_user_link(); ?>">
    <?php bp_activity_avatar('type=full&width=100&height=100'); ?>
    		</a>
    	</div>

    Вот здесь нет такой проблемы — http://wpme.ru/ ?

    Я не встречал.
    В стандартном BP код действительно такой?
    Если да — я готов принести извинения за свою излишне эмоциональную реакцию.
    Мне приходит в голову только два вопроса — в чем вы редактируете файлы?
    И как настроен FTP-клиент для работы с файлами?

    Ёлки-палки….
    Это говнокод действительно в дистрибутиве BuddyPress.
    Вот теперь я действительно прошу прощения.
    И жду ответа на два свои последних вопроса.
    Тема стала гораздо более интересной, чем показалось сначала…

    Модератор Yuri

    (@yube)

    Так во второй строке честно выводится список: <li class=......

    Вот теперь мне кажется, что «сотни человек» пользуются этим плагином как-то не так, поэтому у них и нет проблем. Судя по всему, что-то в Вашей конфигурации провоцирует несвоевременное выполнение скрипта, то есть, он выполняется — выводит список — еще до того, как закончена вся предварительная работа.

    Эти два файла из дистрибутива.
    Правлю файлы тем же, чем делаю это уже несколько лет — AkelPad встроенный в ТС.
    Вообще, я их даже и не собирался править, пока не появилась ошибка. Как были залиты, так и лежали. А сегодня создали первую группу и написали в ней коммент. Вот и возник вопрос

Просмотр 15 ответов — с 1 по 15 (всего 20)
  • Тема «Cannot modify header information… _inc/ajax.php:142» закрыта для новых ответов.