如何在循环中按类别过滤帖子

时间:2013-06-10 作者:Justine

我试着将我的帖子分类如下:

CATEGORY 1 
- post title
- post title

CATEGORY 2
- post title
- post title 
我可以通过自定义查询实现这一点:

<?php 
$args = array(
    \'orderby\' => \'name\',
    \'hide_emppty\' => 1,
    \'hierarchical\' => false,
    \'taxonomy\' => \'course_category\'
);
$categories = get_categories($args);
foreach ($categories as $category) : ?>

    <h3><?php echo $category->name; ?></h3>

    <?php $courses = new WP_Query( "post_type=courses&posts_per_page=-1&course_term=term-fall&course_category=" . $category->slug);  ?>
    <?php if ( $courses->have_posts() ) : while ( $courses->have_posts() ) : $courses->the_post(); ?>
        <?php the_title(); ?>
    <?php endwhile; endif; ?>

<?php endforeach; ?>
然而,我需要做的是对来自插件生成的查询的帖子进行排序(我没有(?)控制它)-所以这需要在正常的if(have_posts()) : while (have_posts())

这可能吗?此查询中的帖子都是正确的帖子类型和course\\u term自定义分类法,只需按上面的course\\u类别分类法排序即可。

提前感谢您的帮助!

1 个回复
SO网友:JMau

找到了一个非常激进的解决方案:

function wpse_102497_modify_query_order( $query ) {
    if ( $query->is_main_query() ) {
      $query->set( \'orderby\', \'title\' );
    }
}
add_action( \'pre_get_posts\', \'wpse_102497_modify_query_order\' );
希望这会有所帮助。

结束

相关推荐

Categories sorting

我正在使用下面的代码来弹出自定义帖子类型及其类别,所以类别1---岗位1---岗位2第二类——岗位1——岗位2——岗位3等。这对我来说很好,但是我希望能够按count对我的类别进行排序,所以orderby=count,这样,在我下面的代码中不起作用的时候,具有大量帖子的类别将排在列表的顶部,知道为什么吗?非常感谢您的帮助 <?php // List posts by the terms for a custom taxonomy of any post type