对于我正在处理的插件,我创建了自定义可排序列。
我有一个名为features的列,它将输出一个复选标记符号
echo '✓';
可排序列的功能是
function my_sortable_column( $columns ) {
$columns['featured'] = 'featured_item';
return $columns;
}
add_filter( 'manage_edit-portfolio_sortable_columns', 'my_sortable_column' );
function manage_wp_posts_be_qe_pre_get_posts( $query ) {
if ( $query->is_main_query() && (!is_admin()) && ( $orderby = $query->get( 'orderby' ) ) ) {
switch( $orderby ) {
case 'featured_item':
$query->set( 'meta_key', 'featured_item' );
$query->set( 'orderby', 'meta_value_num' );
break;
}
}
}
add_action( 'pre_get_posts', 'manage_wp_posts_be_qe_pre_get_posts', 1 );
问题是orderby不起作用,因为输出不是字母数字输出。这是一个复选标记。我该如何排序?我试过把
$query->set( 'orderby', 'name' );
$query->set( 'orderby', 'meta_value' );
$query->set( 'orderby', 'meta_value meta_value_num' );
没有任何作用。有没有办法对它进行排序?