我有一个问题,在搜索结果中没有找到页面标题。
我已将问题缩小到以下搜索范围。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…</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>
...
谢谢。
最合适的回答,由SO网友:Mark Kaplun 整理而成
你应该打电话the_post
仅在循环内部,或调用rewind_posts()
在实际开始循环之前。
旁注:你完全错了。不要重新发明轮子,看看法典如何编写主题或使用捆绑的默认主题之一作为主题的基础。没有一个理智的人会从零开始编写主题。