如何添加orderby参数用于分类.php排序

时间:2012-10-11 作者:Talon

我在一个类别上。php页面,循环如下:

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
我通常会这样做一个自定义循环:

<?php //Define the Loop
    $temp = $wp_query;
    $wp_query= null;
    $wp_query = new WP_Query();
    $wp_query->query(\'posts_per_page=2&orderby=\'.$orderBy.\'&paged=\'.$paged);
    ?>
我想将orderby变量添加到第一个循环(category.php上的循环)中,但不知道如何实现它。

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

您可以使用pre_get_posts action hook可设置类别存档的顺序,如下所示:

add_action(\'pre_get_posts\', \'filter_category_orderby\');

function filter_category_orderby( $query ){
    if( $query->is_category()){
        $query->set(\'orderby\', \'title\');
    }
}
只需将此片段粘贴到主题函数中即可。php和您应该很好。

SO网友:Shane

如果是主回路,您可以使用query_posts 添加orderby 变量

例如,您可以通过将以下PHP代码放在循环上方按标题排序:

 global $query_string;

 query_posts( $query_string . \'orderby=title\' );

 //Your while here

结束

相关推荐

sticky post in custom loop

我在自定义循环中显示粘性帖子时遇到问题。这是我用于自定义循环的代码:<?php $post_from_cat_a = new WP_Query(array( \'category_name\' => \'events\', //Get posts from category a \'posts_per_page\'=> 2 //Limit it to the latest one )); if(