我已经在自定义帖子类型中创建了自定义列。此列显示自定义分类法。代码如下:
function custom_MY_CUSTOM_POST_TYPE_column( $column, $post_id ) {
switch ( $column ) {
case \'MY_CUSTOM_COLUMN\';
$terms = get_the_term_list( $post_id , \'MY_CUSTOM_COLUMN\' , \'\' , \',\' , \'\' );
if ( is_string( $terms ) )
echo $terms;
else
_e( \'-\', \'your_text_domain\' );
break;
}
}
现在我需要将此列按字母顺序排序,因此我创建了以下代码:
// Register the column as sortable
function x_column_register_sortable( $columns ) {
$columns[\'MY_CUSTOM_COLUMN\'] = \'x\';
return $columns;
}
add_filter( \'manage_edit-MY_CUSTOM_POST_TYPE_sortable_columns\', \'x_column_register_sortable\' );
但这不起作用。如何使此列正常工作?
最合适的回答,由SO网友:WPExplorer 整理而成
您试图按“x”排序,但WordPress不知道这是什么。因此,您需要按照WP理解的“标题”进行排序:
$columns[\'MY_CUSTOM_COLUMN\'] = \'title\';
否则,您需要“x”来实际执行类似操作:
function my_custom_query_sort( $query ) {
if ( ! is_admin() ) {
return;
}
$orderby = $query->get( \'orderby\');
if ( \'x\' == $orderby ) {
$query->set( \'orderby\', \'SOMETHING CUSTOM\' );
}
}
add_action( \'pre_get_posts\', \'my_custom_query_sort\' );
但这不是唯一的问题。。。您提到该列是一个自定义分类法。WordPress中没有任何按分类法对帖子进行排序的核心功能。更不用说每个职位都可以分配多个术语。