为什么PHP/WordPress在这里回显空白?

Isa*_*bow 2 php wordpress whitespace

我在网站上有一个非常简单的存档页面循环:

<?php get_header(); ?>
<?php if(have_posts()): ?>
<div id="thumbs-container">
<?php while(have_posts()): the_post(); if(has_post_thumbnail()): ?>
    <div <?php post_class('thumb'); ?>>
        <a href="<?php the_permalink(); ?>">
        <?php the_post_thumbnail('full',array('alt'=>get_the_title(),'title'=>null)); ?>
        <div class="thumb-desc">
            <h2><?php the_title(); ?></h2>
            <p><?php echo get_post_meta($post->ID,'Description',true); ?></p>
        </div>
        </a>
    </div>
<?php endif; endwhile; ?>
</div>
<?php else: get_template_part('no-results'); endif; ?> // <--problem here?
<?php get_footer(); ?>
Run Code Online (Sandbox Code Playgroud)

以下是完整no-results模板:

<h2>Nothing here yet.</h2>
<p>Please <a href="<?php bloginfo('url'); ?>/">return to the home page</a>.</p>
Run Code Online (Sandbox Code Playgroud)

由于存档当前为空,因此no-results.php会按预期显示内容.浏览页面源代码显示<h2>它与其包含之间没有任何内容(甚至不是空格)<div>,但是<h2>在页面上向下按一行,Developer Console在其上方显示一个空文本节点:

H2元素上方的一串空格

邋wh的空白是一回事; 实际上影响我的布局的空白是另一个.我有什么遗漏可能会导致这种情况吗?

mer*_*tor 5

您是否有机会使用记事本创建no-results模板?

我猜你的模板以UTF-8字节顺序标记开头.使用UTF-8编码保存文件时,默认情况下会将记事本插入.其他一些文本编辑器也这样做,但通常可以选择将其关闭.

使用不插入BOM的编辑器,或者,考虑到您的模板不包含任何非ASCII字符,只需将其保存为ASCII/ANSI即可.