对用户管理选项卡中的列排序

时间:2021-11-03 作者:AFM

我在“用户管理”选项卡中创建了一个新列,其中显示了一个用户有多少个列表。

//// ADD THE NEW COLUMN
add_filter( \'manage_users_columns\', \'add_listing_count_column\' );
function add_listing_count_column( $columns ) {
    $columns[\'Listings\'] = \'Listings\'; // 
    return $columns;}


// FILL THE NEW COLUMN
add_filter( \'manage_users_custom_column\', \'add_listing_count_column_row\', 10, 3 );
function add_listing_count_column_row( $row_output, $column_id_attr, $user_id ) {
if ( $column_id_attr == \'Listings\') {
        return count_user_posts( $user_id, \'job_listing\' );
    }
    return $row_output;}
现在我正在尝试对数字进行排序。但它一直按用户名排序。。。

// MAKE THE NEW COLUMN SORTABLE
add_filter( \'manage_users_sortable_columns\', \'add_listing_count_column_sortable\');
function add_listing_count_column_sortable( $columns ) {
    return wp_parse_args( array( \'Listings\' => \'Listings\' ), $columns );}

1 个回复
SO网友:Tom J Nowell

  • ✅ 您已经添加了列
  • ✅ 您已经告诉管理员UI这是一个可排序的列
  • ❌ 您没有实现用户查询的排序
仅仅告诉WP Admin您有一个可排序的列是不够的,如何知道如何对其排序¯\\_(ツ)_/¯! 它并没有那么聪明,它不知道显示内容的函数正在显示什么,也不知道它将返回什么类型的HTML,它只是调用它并相信它会完成这项工作。我们如何知道add_listing_count_column_row youtube视频或随机数字不是吗?

排序本身是通过数据库完成的,PHP只是创建查询并显示结果。它不会得到每个用户的结果并在PHP中对其进行排序,这会将WordPress中的用户数量限制在一页结果中。

因此,使用the pre_get_users hook 你会用同样的方法pre_get_posts, 查找它添加的URL get参数以指示排序和方向,请仔细检查is_admin 为true,这样就不会弄乱前端,并修改WP_User_Query 要对用户进行排序,请使用the sorting/order query variables in the WP_User_Query documentation.

请注意,这将引导您进入一个新的独立问题,尽管您需要ask a brand new question: “参考资料”;如何排序aWP_User_Query 按用户特定的帖子类型计数"E

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果