按非元值排序WP用户列(PHP)
更新:我已经阅读了更多关于类似问题的帖子,一致认为按用户管理表中的实际数据进行过滤不是一个选项,如果还没有,则需要通过将数据添加到PosteTa来进行排序。希望情况不是这样,但听起来好像是这样 我在user admin表中添加了一些自定义列。有些列从自定义用户meta获取其值,但有些列不获取。我已经能够使那些从meta中获取内容的专栏变得很好按非元值排序WP用户列(PHP),php,wordpress,columnsorting,Php,Wordpress,Columnsorting,更新:我已经阅读了更多关于类似问题的帖子,一致认为按用户管理表中的实际数据进行过滤不是一个选项,如果还没有,则需要通过将数据添加到PosteTa来进行排序。希望情况不是这样,但听起来好像是这样 我在user admin表中添加了一些自定义列。有些列从自定义用户meta获取其值,但有些列不获取。我已经能够使那些从meta中获取内容的专栏变得很好 if ( 'member_number' == $query->get( 'orderby' )) { $query->set( 'o
if ( 'member_number' == $query->get( 'orderby' )) {
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', 'number' );
}
…但是列I无法对通过交叉引用用户信息和重力表单条目、按日期对GF条目进行排序并输出与用户匹配的GF条目位置来获取其值的列进行排序
更简单的说法是,我想显示一个“等待列表位置”,该位置可能会频繁更改,并且需要定期更新大约100篇文章的postETA,以准确显示用户在队列中的位置。我不认为这样做是可行的,我能想到的最好办法就是根据等待名单上的人的名单来引用用户的电子邮件地址
如果有帮助,引用自定义函数并将其应用于我的列的代码是:
if ('waitlist_pos' == $column_name){
$waitlistNumber = get_waitlist_position( $user_id );
$value = $waitlistNumber;
return $value;
}
…我获取这些值的功能是:
function get_waitlist_position( $user_id ){
$waitlistUser = get_user_by( 'id', $user_id);
if ( empty( $waitlistUser ) ) {
return;
} else {
$waitlistUserEmail = $waitlistUser->user_email;
$form_id = '18';
$entries = GFAPI::get_entries($form_id);
usort($entries, make_comparer('date_created'));
$emails = array_column( $entries, '3' );
$waitlistposition = array_search( $waitlistUserEmail, $emails );
if ( !in_array( $waitlistUserEmail, $emails, true )) {
return;
}
}
return $waitlistposition +1;
}
只有百分之几的用户在等待名单上
我已经成功地创建了自定义列,并在用户管理表中显示了用户的适当等待列表位置,但是我找到的关于使列的内容可排序的每个指南要么描述默认WordPress排序条件,要么通过元查询,就像我在上面代码中对其他列所做的那样
如果这些列的值实际上不作为用户元数据或用户数据存在,那么简单地按照它们的值对这些列进行排序有什么想法吗?这些值是简单的整数,从1开始到100左右
我已经尝试将创建的列单独保留,尽管它确实有箭头指示它是可排序的,但单击它不会更改条目的顺序,并且尝试强制执行类似前面使用的WP_查询的查询,当然,一旦尝试排序,将导致空表
感谢您阅读关于我的简单问题的长问题!同样高兴的是,如果把等待列表的位置变成某种动态的post-meta可能更有意义