【发布时间】:2014-03-25 21:20:32
【问题描述】:
在 Wordpress 中,有没有办法让自定义列按显示值而不是 meta_value 排序?我的意思是我的元值是一个数字,但我已经用现有的钩子操纵了这个数字,使它成为一个字符串。我想按该字符串而不是数字进行排序。这是我现有的工作代码,可以很好地对其进行排序 - 它不会按字母顺序排列:
add_action('manage_resource_posts_custom_column', 'my_manage_resource_columns', 10, 2);
function my_manage_resource_columns($column_name, $id) {
switch ($column_name) {
case 'type':
$id = get_the_ID();
$par = get_field('resource_type',$id);
$type = get_field('singular_name',$par);
echo $type;
break;
default:
break;
}
}
add_filter( "manage_edit-resource_sortable_columns", "my_last_modified_column_register_sortable" );
function my_last_modified_column_register_sortable( $columns ) {
$columns["type"] = "type";
return $columns;
}
add_filter( "request", "sort_column_by_modified" );
function sort_column_by_modified( $vars ){
if ( isset( $vars["orderby"] ) && "type" == $vars["orderby"] && $_GET['post_type']=='resource') {
$vars = array_merge( $vars, array(
'meta_key' => 'resource_type',
'orderby' => 'meta_value_num'
) );
}
return $vars;
}
因此,您可以看到我根据数据库中的数值为列名添加实际文本的位置。它显示正常。我只需要它可以按该文本而不是它所代表的值进行排序。有谁知道这是否可能/怎么做?
这是该列现在的屏幕截图。你可以看到它们确实是按类型分组的,但它是按 ID 的数字顺序排列的
提前致谢!
【问题讨论】:
标签: php wordpress jquery-ui-sortable backend custom-post-type