标题编号的帖子排序有问题,例如1、10、100

时间:2016-11-30 作者:Yearmaz

我有一些帖子的名字从1到25。但是,WordPress排序系统不能正常工作。它的顺序是1,10,11,12,13。。。2,21,22,23,24,25。我不想将0添加到1-9个数字。如何解决此问题?

我对分类提出了同样的问题,但我对帖子也有同样的问题。我之前的问题是here.

我如何解决订购帖子时遇到的相同问题?

1 个回复
SO网友:Dave Romsey

以下代码将按post_title 字段,数字。此代码将影响后端和前端帖子的主查询。

// Apply numeric post ordering for posts in admin and front end.
// Adapted from https://www.fldtrace.com/custom-post-types-numeric-title-order
function wpse247871_post_order( $wp_query ) {
    if ( $wp_query->is_main_query() && $wp_query->query[\'post_type\'] == \'post\' ) { 
        add_filter( \'posts_orderby\', \'wpse247871_orderby_post_title_int\' );
    }  
}  
add_filter(\'pre_get_posts\', \'wpse247871_post_order\');

// Cast the post_title field as an integer in SQL.
function wpse247871_orderby_post_title_int( $orderby ) {
    global $wpdb;
    return "({$wpdb->prefix}posts.post_title+0) ASC";
}

相关推荐

Changing slug of all posts

我有一个网站,有十几种自定义帖子类型。我想更改默认的帖子类型,使其URL有一段/news/。在我的函数文件中,我有: add_action( \'init\', \'change_post_object\' ); // Change dashboard Posts to News function change_post_object() { $get_post_type = get_post_type_object(\'post\');&#x