按帖子类型排序搜索结果

时间:2012-11-21 06:29:09

标签: wordpress sorting loops search

我想弄清楚如何按帖子类型对搜索结果进行排序。我问了关于wordpress堆栈交换的问题,有人尝试回答,但我不认为他们理解我想要实现的目标。 - https://wordpress.stackexchange.com/questions/72914/search-results-sorted-by-post-types

  

例如,当一个人搜索他们正在访问该页面的术语时   结果显示了从所有帖子类型中找到的所有>帖子   在顶部有不同的帖子类型名称>将排序的链接   结果并仅显示相应的帖子类型的帖子。现在我   在每个帖子类型的搜索结果页面上有几个循环但是当我测试它时,>循环都显示相同的结果   虽然每个循环都有一个不同帖子类型的查询。

我的搜索页面代码 - http://pastebin.com/L9zEw1cn

这略高于第一个循环<?php global $wp_query; $total_results = $wp_query->found_posts; ?> This is the first loop <?php if(have_posts()) : ?> <?php while(have_posts()) : the_post() ?> //My divs// <?php endwhile; endif; ?> <?php wp_reset_postdata(); ?>

然后第二个循环对于除帖子类型名称以外的所有其他循环相同 - <?php $args = array( 'post_type' => 'videos', 's' => $s ); ?> <?php if(have_posts()) : ?> <?php while(have_posts()) : the_post() ?> //My divs <?php endwhile; endif; ?> <?php wp_reset_postdata(); ?>

如何修复它以便每个循环仅显示该帖子类型的搜索结果?

1 个答案:

答案 0 :(得分:0)

尝试将get_posts用于第二个循环。

$args = array(
  'post_type'=> 'videos',
  'numberposts' => -1,
  's' => $s
);
$videos = get_posts( $args );
foreach( $videos as $post ) : setup_postdata($post);
    // My divs
endforeach;

http://codex.wordpress.org/Template_Tags/get_posts

编辑:在参数中添加了'numberposts'。