按元键和元值对列进行排序

时间:2013-12-24 作者:Mick D

在WordPress后端,我想根据元键和元值对自定义帖子类型列进行排序。

元键称为“状态”。对于“状态”键,我有三个不同的元值。如何按字母顺序排序?

这是我的代码:

// Register the column
function status_column_register( $columns ) {
    $columns[\'status\'] = __( \'status\', \'bf_rapportage\' );

    return $columns;
}
add_filter( \'manage_edit-bf_rapportage_columns\', \'status_column_register\' );

// Display the column content
function status_column_display( $column_name, $post_id ) {
    if ( \'status\' != $column_name )
        return;

    $status = get_post_meta($post_id, \'status\', true);
    if ( !$status )
        $status = \'<em>\' . __( \'undefined\', \'bf_rapportage\' ) . \'</em>\';

    echo $status;
}
add_action( \'manage_posts_custom_column\', \'status_column_display\', 10, 2 );

// Register the column as sortable
function status_column_register_sortable( $columns ) {
    $columns[\'status\'] = \'status\';

    return $columns;
}
add_filter( \'manage_edit-bf_rapportage_sortable_columns\', \'status_column_register_sortable\' );

function status_column_orderby( $vars ) {
    if ( isset( $vars[\'orderby\'] ) && \'status\' == $vars[\'orderby\'] ) {
        $vars = array_merge( $vars, array(
            \'meta_key\' => \'status\',
            \'orderby\' => \'meta_value_num\'
        ) );
    }

    return $vars;
}
add_filter( \'request\', \'status_column_orderby\' );

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

你试过改变你的orderby 值到meta_value, 而不是meta_value_num 在您的status_column_orderby 作用这在过去一直对我有效。我假设我们处理的是单词,而不是数字,因为你在问题中说的是“字母顺序”。meta_value 表示字母/字符,带meta_value_num 保留给。。。你猜对了。。。数字。

结束

相关推荐

Tags Sorted By Characters?

如果我在一篇文章中放置了多个标签,那么在发布文章后,所有标签都会按字符序列自动排列,比如B C D。。。任何想法,如果我希望有所有的标签将不会排序或按字符序列排列。。。。所以,第一个标签将是第一个,最后一个标签将放置在最后。。。尽管第一个标记可能以Z开头,最后一个标记以A开头。。那么,我所说的保持标签序列静态的方法是什么呢?