为什么我的自定义用户视图列没有排序 A-Z?
Why is my custom User View column not sorting A-Z?
我在 WordPress 中为我的用户 table 添加了一个名为 安全答案 的自定义列。我想将此列设为 sortable,所以我得到了以下代码:
function trucklesoft_my_sortable_cake_column( $columns ) {
$columns['security_answer'] = 'Security Answer';
return $columns;
}
add_filter( 'manage_users_sortable_columns', 'trucklesoft_my_sortable_cake_column' );
我现在可以单击列标题,它似乎可以进行某种排序,但它不起作用。
这是一个基于文本的列,列中的一些项目是空的,但我希望它可以对 A-Z 时尚或 Z-A 时尚进行排序,但它不会。
如何实现排序逻辑?
您的代码仅将列注册为 sortable,因此管理员 table headers 包括必要的标记。
但是没有实现排序逻辑。你需要这样的东西:
add_action( 'pre_get_users', 'trucklesoft_security_orderby' );
function trucklesoft_security_orderby( $query ) {
if( ! is_admin() || ! current_user_can( 'edit_user' ) )
return;
$orderby = $query->get( 'orderby');
if( 'security_answer' == $orderby ) {
$query->set('meta_key','security_answer');
$query->set('orderby','meta_value');
}
}
好久没做WP了,可能需要稍微调整一下代码。我假设你的 "security_answer" 确实是一个自定义的 postmeta。
我在 WordPress 中为我的用户 table 添加了一个名为 安全答案 的自定义列。我想将此列设为 sortable,所以我得到了以下代码:
function trucklesoft_my_sortable_cake_column( $columns ) {
$columns['security_answer'] = 'Security Answer';
return $columns;
}
add_filter( 'manage_users_sortable_columns', 'trucklesoft_my_sortable_cake_column' );
我现在可以单击列标题,它似乎可以进行某种排序,但它不起作用。
这是一个基于文本的列,列中的一些项目是空的,但我希望它可以对 A-Z 时尚或 Z-A 时尚进行排序,但它不会。
如何实现排序逻辑?
您的代码仅将列注册为 sortable,因此管理员 table headers 包括必要的标记。
但是没有实现排序逻辑。你需要这样的东西:
add_action( 'pre_get_users', 'trucklesoft_security_orderby' );
function trucklesoft_security_orderby( $query ) {
if( ! is_admin() || ! current_user_can( 'edit_user' ) )
return;
$orderby = $query->get( 'orderby');
if( 'security_answer' == $orderby ) {
$query->set('meta_key','security_answer');
$query->set('orderby','meta_value');
}
}
好久没做WP了,可能需要稍微调整一下代码。我假设你的 "security_answer" 确实是一个自定义的 postmeta。