我正在向用户管理屏幕添加一个附加列,以显示每个用户的公司。我已经成功地将此列显示在表中,但我真的很难将其按字母顺序排序。
列标题似乎被激活为可排序,但如果我单击它来重新组织列表顺序,表实际上会根据用户名而不是公司按字母顺序重新排列。
我花了很多时间在网上寻找和调整其他解决方案,但仍然没有成功。我已经看到了很多为post类型的admins屏幕而不是用户admin屏幕进行自定义列排序的示例。
下面是我当前用于在用户管理屏幕上生成“Company”列的代码,它正在引入作者元数据“Company”。
//MAKE THE COLUMN SORTABLE
function user_sortable_columns( $columns ) {
$columns[\'company\'] = \'Company\';
return $columns;
}
add_filter( \'manage_users_sortable_columns\', \'user_sortable_columns\' );
add_action( "pre_get_users", function ( $WP_User_Query ) {
if ( isset( $WP_User_Query->query_vars["orderby"] )
&& ( "company" === $WP_User_Query->query_vars["orderby"] )
) {
$WP_User_Query->query_vars["meta_key"] = "company_name";
$WP_User_Query->query_vars["orderby"] = "meta_value";
}
}, 10, 1 );
SO网友:ban-geoengineering
这是我的代码,它添加了一个可排序的自定义列(称为Vendor ID) 到用户表:
function fc_new_modify_user_table( $column ) {
$column[\'vendor_id\'] = \'Vendor ID\';
return $column;
}
add_filter( \'manage_users_columns\', \'fc_new_modify_user_table\' );
function fc_new_modify_user_table_row( $val, $column_name, $user_id ) {
switch ($column_name) {
case \'vendor_id\' :
return get_the_author_meta( \'vendor_id\', $user_id );
default:
}
return $val;
}
add_filter( \'manage_users_custom_column\', \'fc_new_modify_user_table_row\', 10, 3 );
function fc_my_sortable_cake_column( $columns ) {
$columns[\'vendor_id\'] = \'Vendor ID\';
//To make a column \'un-sortable\' remove it from the array unset($columns[\'date\']);
return $columns;
}
add_filter( \'manage_users_sortable_columns\', \'fc_my_sortable_cake_column\' );
简单,对我来说很好。
SO网友:mmm
行动request
使用post。对于用户来说pre_get_users
:
add_action("pre_get_users", function ($WP_User_Query) {
if ( isset($WP_User_Query->query_vars["orderby"])
&& ("company" === $WP_User_Query->query_vars["orderby"])
) {
$WP_User_Query->query_vars["meta_key"] = "company_name";
$WP_User_Query->query_vars["orderby"] = "meta_value";
}
}, 10, 1);