为什么我的自定义用户视图列没有排序 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。