Intereting Posts
Запретить доступ к папке загрузок с исключениями PHP / Ручное использование изображений? – 2 вопроса Как orderby meta_value_num с знаком доллара ($) API настроек wordpress и структура массива опций Отображение конкретных продуктов WooCommerce для разных типов пользователей Создайте уникальный идентификатор, который отображается пользователю и администратору через формы Ninja Использование функциональных возможностей плагина во внешнем php-скрипте не работает Перемещение из субдомена в корень query_posts добавляет дополнительный код на главную страницу Получить CSS сообщений Force index.php has_posts () loop для выхода, если не найдены липкие сообщения Переписывание страницы с настраиваемым параметром Как добавить гиперссылку на содержимое электронной почты в WordPress? Wp_Mail и контактный формуляр 7 Запрос wpdb php get_var для получения идентификатора для URL-изображения не работает для ID более 999

Запретить отправку заголовков

Как я могу предотвратить отправку заголовков?

Я пытаюсь перечислить (WordPress) сообщения в блоге на сайте, отличном от WordPress (оба сайта используют общедоступную веб-папку).

Я хочу запустить следующий код PHP, чтобы получить сообщения в блоге:

<ul class='list-unstyled'> <?php define('WP_USE_THEMES', false); require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-load.php'); query_posts('showposts=5'); while (have_posts()): the_post(); ?> <li><i class='glyphicon glyphicon-menu-right'></i> <h4><a href="<?php the_permalink(); ?>" class="myred text-main"><?php the_title(); ?></a></h4> <p><?php the_date(); ?> | Category: <?php the_category(','); ?> | <?php the_tags(); ?></p> </li> <?php endwhile; ?> </ul> 

Тем не менее, похоже, что этот код отправляет заголовки полезных данных клиенту. Есть ли способ получить сообщения в блоге без отправки заголовков?

Solutions Collecting From Web of "Запретить отправку заголовков"

«Заголовки уже отправлены» не является ошибкой WordPress, это сообщение об ошибке обработки PHP. Хорошее объяснение здесь; Уровеньвыше:

Я подозреваю, что это может быть вызвано некоторыми символами (вероятно, пробелами), отправленными перед вашим сегментом кода <?php . Даже пробелы (или символы [форматирование кода]) вызовут ошибку.

И, возможно, переместите свой код <ul> чуть выше цикла while.

Вывод страницы начинается с вашего php. Посмотрите на буферизацию вывода .

Поместите вызов функции ob_start () перед любым HTML-файлом в файл и вызовом ob_get_clean () после устранения проблемы.

Это будет выглядеть примерно так:

 <?php define('WP_USE_THEMES', false); require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-load.php'); //Buffer output instead of immediately sending to the client //make sure there is only PHP here ob_start(); ?> //templating stuff... <ul class='list-unstyled'> <?php query_posts('showposts=5'); while (have_posts()): the_post(); ?> <li><i class='glyphicon glyphicon-menu-right'></i> <h4><a href="<?php the_permalink(); ?>" class="myred text-main"><?php the_title(); ?></a></h4> <p><?php the_date(); ?> | Category: <?php the_category(','); ?> | <?php the_tags(); ?></p> </li> <?php endwhile; ?> </ul> //More templating stuff... <?php ob_get_clean(); //output starts ?> 

Кроме того, как указал Рик Хеллвелл в своем ответе , убедитесь, что файл начинается с ничего, кроме открывающего <?php . Нет пробела, а не HTML, ничего.

Я решил свою проблему, установив плагин REST API, затем вызывая конечную точку с моего сайта, отличного от WordPress, кэшируя результаты, а затем отображая список блога из результатов моего кеша.