重写自定义帖子类型的规则

时间:2011-11-06 作者:ilovewordpress

有一个非层次化的自定义帖子类型“news”。

/news/
/news/page/2/
/news/post_slug/
每个帖子都有自定义字段"views". 当有人打开帖子时,字段的值会增加一。

希望按此自定义字段及其值对帖子进行排序。

/news/
/news/views/ = /news/?sort=views (get posts with custom field "views" and sort asc)
/news/views/page/2/ = /news/?sort=views&page=2 (similar to previous, next page)
/news/post_slug/
开始工作了/news/?sort=views, 但这种联系不像人类。

应将其转换为/news/views/ 并能够处理分页。

我们怎样才能做到这一点?

1 个回复
SO网友:Alexey

你需要看看add_rewrite_tag()add_rewrite_rule()

另请阅读thisthis 主题。他们与您的问题非常接近。

设置重写规则后,不要忘记刷新规则

add_action( \'wp_loaded\',\'my_flush_rules\' ); // flush_rules() if our rules are not yet included
function my_flush_rules(){
    $rules = get_option( \'rewrite_rules\' );
    $pattern = \'news/([^/]+)?\'; // the same pattern that was used in add_rewrite_rule
    if ( !isset( $rules[$pattern] ) ) {
        global $wp_rewrite;
        $wp_rewrite->flush_rules();
    }
}

结束

相关推荐