如何将WP主档案循环更改为按名称或标题排序

时间:2013-01-23 作者:Yaniv Kossas

我在其他地方找到了以下代码,我用它分页。

虽然我读过法典,但我不完全理解。wordpress。多次查询组织/Class\\u引用/WP\\u。他们似乎在谈论新的问题。

global $wp_query, $wp_rewrite, $numposts;
$wp_query->query_vars[\'paged\'] > 1 ? $current = $wp_query->query_vars[\'paged\'] : $current = 1;  
$pagination = array(  
    \'base\' => @add_query_arg(\'page\',\'%#%\'),  
    \'format\' => \'\',  
    \'total\' => $wp_query->max_num_pages,  
    \'current\' => $current,  
    \'show_all\' => false,
    \'mid_size\' => 5, 
    \'type\' => \'plain\',
    \'prev_next\'    => True,
    \'prev_text\'    => __(\'[<< Prev]\'),
    \'next_text\'    => __(\'[Next >>]\'),
);  
if ( $wp_rewrite->using_permalinks() ) 
    $pagination[\'base\'] = user_trailingslashit( trailingslashit( remove_query_arg( \'s\', get_pagenum_link( 1 ) ) ) . \'page/%#%/\', \'paged\' );  

if ( !empty($wp_query->query_vars[\'s\']) ) 
    $pagination[\'add_args\'] = array( \'s\' => get_query_var( \'s\' ) );
有没有办法改变这一点,这样它也可以按照标题、姓名、id或其他排序方式对帖子进行排序?

1 个回复
SO网友:Milo

使用pre_get_posts 对主查询进行任何更改。主查询在加载模板之前进行,使用query_posts 只覆盖原始查询,这是对资源的浪费:

function wpa82795_archives_orderby( $query ) {
    if ( $query->is_archive() && $query->is_main_query() ) {
        $query->set( \'orderby\', \'title\' );
        $query->set( \'order\', \'asc\' );
    }
}
add_action( \'pre_get_posts\', \'wpa82795_archives_orderby\' );
请参见Conditional Tags 对于其他条件,可以进行测试以限制新查询参数的应用。您可以设置可用于WP_Query.

结束

相关推荐

“MANAGE_POSTS_CUSTOM_COLUMN”操作挂钩与“MANAGE_${POST_TYPE}_COLUMNS”筛选器挂钩有何关系?

怎样add_action(\"manage_posts_custom_column\", \"custom_callback_fun01\"); 与…有关add_filter(\"manage_{xxxx-xxx}_columns\", \"cusotm_callback_fun02\" );?它们是如何一起工作的?通过使用这两者,我们可以将自定义列添加到自定义帖子类型和显示日期,例如,在特色列中显示特色图像这是我的代码示例,它工作得很好,但我对过滤器如何与动作挂钩一起工作有点困惑?//slides&#x