如何在分页结果上保持搜索标题不变

时间:2018-01-28 作者:Ibby

我有一个小问题:

搜索结果页面完美地返回了我精心制作的标题,但我面临的问题是,页面结果中的标题会发生变化。如果结果都在第二页上,那么这很好,如果结果出现在第二页上,并且更多,那么标题将更改为页面结果的第一篇文章。

Does the above make any sense?

好的,这是我使用的全部标题代码。

if( get_post_type()==\'page\' || is_single() ){
    echo \'<h1 class="h2">\'. $post->post_title .\'</h1>\';
} elseif (is_category()){
    echo \'<h1 class="h2">Category:\'. wp_title( \'\', false ).\'</h1>\';
} elseif (is_tag()){
    echo \'<h1 class="h2">Tag:\'. wp_title( \'\', false ).\'</h1>\';
} elseif (is_author()){
    echo \'<h1 class=h2">Author:\'. wp_title( \'\', false ).\'</h1>\';
} elseif (is_search()){
    echo \'<h1 class="h2">\'.$wp_query->found_posts.\' Results Found For: \'.get_search_query( false ).\'</h1>\';                                 
} else {
    echo \'<h1 class="h2">\'. wp_title( \'\', false ) .\'</h1>\';
}       

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

问题在于:

if( get_post_type()==\'page\' || is_single() ){
    echo \'<h1 class="h2">\'. $post->post_title .\'</h1>\';
}
get_post_type() 正在使用全局$post, 它将包含结果集中的第一篇帖子。如果这是一个页面,那么您的其他条件将永远不会被测试,您将永远无法达到is_search() 测验

使用is_page() 而是:

if( is_page() || is_single() ){
    echo \'<h1 class="h2">\'. wp_title( \'\', false ) .\'</h1>\';
}
或者,使用is_singular(), 这对于page, post, 或attachment, 或任何单数岗位类型:

if( is_singular() ){
    echo \'<h1 class="h2">\'. wp_title( \'\', false ) .\'</h1>\';
}

结束