按类型将搜索结果集中分开

时间:2014-02-23 作者:drake035

我的搜索结果仅限于帖子类型bookauthor. 中的以下代码search.php 显示全部author 先发布,然后全部发布book 岗位(一)asked 为什么帖子类型是这样分开的,但到目前为止还没有得到答案):

while(have_posts()) : the_post();       
    if ( \'book-author\' == get_post_type() ) {   
        ?>
        <h2>AUTHOR</h2>
        <?php the_title(); 
    }
    elseif ( \'book\' == get_post_type() ) {  
        ?>
        <h2>BOOK</h2>
        <?php the_title(); 
    }
endwhile; 
然而,我想在两个标题为“BOOKS”和“AUTHORS”的列中显示这些搜索结果,每个列都有自己的搜索结果div 要素这段代码不允许这样,那么我如何才能实现这样的划分呢?

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

有两种选择。

第一个也是可能最简单的选项是在页面上的每个位置运行两次查询。

// Author Block
while(have_posts()) : the_post();       
    if ( \'book-author\' == get_post_type() ) {   
        ?>
        <h2>AUTHOR</h2>
        <?php the_title(); 
    }
endwhile; rewind_posts();

// Book Block
while(have_posts()) : the_post();       
    if ( \'book\' == get_post_type() ) {  
        ?>
        <h2>BOOK</h2>
        <?php the_title(); 
    }
endwhile; 
注意:我用过rewind_posts() 在重置post计数器的第一个循环之后。

第二个选项是过滤WordPress查询executes 或者在得到结果后对其进行排序,但是对于此解决方案,您应该可以使用上面的代码。

结束

相关推荐

Search CPT Title AND Meta

我目前有一个CPT我想搜索,问题是我还需要能够搜索CPT的元数据。我有以下代码,目前搜索所需的元数据,但我似乎无法让它搜索标题和元数据。非常感谢您的帮助!<?php /** * @package WordPress * @subpackage themename */ get_header(); $search = get_search_query(); ?> <div id=\"main\">