Earch.php中的搜索结果不正确--在earch.php中使用`Define(‘BodyID’,‘Search’);the_post();`触发问题

时间:2014-07-29 作者:jasonbradberry

我有一个问题,在搜索结果中没有找到页面标题。

我已将问题缩小到以下搜索范围。php在我的自定义主题中。

define(\'BodyID\', \'search\'); the_post();

当我包括上面这一行时,搜索结果中不会出现页面标题,当我去掉这些行并运行搜索查询时,我会得到预期的搜索结果。

知道为什么这会中断搜索吗?

搜索的完整代码。php如下所示。

<?php
define(\'BodyID\', \'search\'); the_post();
include(TEMPLATEPATH."/inc/header.php"); ?>
    <div id="main_content">
        <div class="sleeve clearfix">
            <?php if ( have_posts() ): ?>
            <h1>Search Results for \'<?php echo get_search_query(); ?>\'</h1>
            <ol class="search-results">
            <?php while ( have_posts() ) : the_post(); ?>
                <li>
                    <article>
                        <h2><a href="<?php esc_url( the_permalink() ); ?>" title="Permalink to <?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2><a class="more-link" href="<?php esc_url( the_permalink() ); ?>" title="Permalink to <?php the_title(); ?>" rel="bookmark">Read more&hellip;</a>
                </article>
            </li>
        <?php endwhile; ?>
        </ol>
        <?php custom_page_navi(); ?>
        <?php else: ?>
        <h1>No results found for \'<?php echo get_search_query(); ?>\'</h1>
        <p>Please try another search, or return to the <a href="/">home page</a>.</p>
        <?php endif; ?>
    </div>
</div><?php
include(TEMPLATEPATH."/inc/footer.php"); ?>
这是标题的相关部分。php设置主体ID。这是最上面的几行。

<?php
# Create Body ID
(BodyID == "" || BodyID == "BodyID") ? $body_id = "page" : $body_id = BodyID; ?>
<!DOCTYPE html>
...
谢谢。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

你应该打电话the_post 仅在循环内部,或调用rewind_posts() 在实际开始循环之前。

旁注:你完全错了。不要重新发明轮子,看看法典如何编写主题或使用捆绑的默认主题之一作为主题的基础。没有一个理智的人会从零开始编写主题。

结束

相关推荐

Editing wp-includes/feed.php

我不明白为什么我的RSS没有更新,在经历了很多哀嚎和咬牙切齿之后,我相信我已经通过编辑wp includes/feed在一定程度上解决了这个问题。php。我更改了以下内容:$feed->set_cache_duration( apply_filters( \'wp_feed_cache_transient_lifetime\', 12 * HOUR_IN_SECONDS, $url ) ); 对此:$feed->set_cache_duration( apply_filters( \