阻止发送标头

时间:2017-05-30 作者:Jeff Wilkerson

如何防止发送邮件头?

我试图在非WordPress网站上列出(WordPress)博客帖子(两个网站共享一个公共web文件夹)。

我想运行以下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>
然而,运行此代码似乎会向客户端发送负载头。有没有办法在不发送标题的情况下检索博客帖子?

3 个回复
SO网友:Rick Hellewell

“Headers ready sent”不是WordPress错误,而是PHP处理错误消息。这里有很好的解释;https://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php .

我怀疑这可能是由于在<?php 代码段。即使是空格(或制表符[代码格式])字符也会导致错误。

也许可以移动你的<ul> 代码位于while

SO网友:DaveLak

当php执行时,页面的输出开始。调查output buffering.

放置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
?>
正如Rick Hellewell在his answer, 确保文件的开头没有任何内容,只有一个开口<?php 标签没有空格,没有HTML,什么都没有。

SO网友:Jeff Wilkerson

我通过安装RESTAPI插件,然后从我的非wordpress站点调用端点,缓存结果,然后显示缓存结果中的博客列表,解决了我的问题。

结束

相关推荐

Custom Loop Event Page

我需要在事件页面中创建一个循环,每页分页10篇文章。我想用的方法有点复杂。例如,当前日期为2015年5月1日:2015年1月1日至2015年3月1日至2015年6月1日至2015年9月1日我想这样列出我的所有事件:(第一:ASC排序的未来事件)-(第二:DESC排序的过去事件)因此,循环的最终结果是:2015年6月1日至2015年9月1日/-2015年3月1日至2015年1月1日$current_date = current_time( \'timestamp\', true ); $page =