纯代码实现wordpress后台自定义字段筛选用户


将以下代码加入worddpress的主题function.php文件中,实现wordpress后台用户管理界面添加自定义字段筛选功能
注意:用户管理界面添加自定义列并显示用户自定义字段值得代码未包含在本示例代码中,网上很多,请自己去添加
以下代码中的my_user_tag即为添加的用户信息自定义字段key,值是通过wp的update_user_meta()方法添加,一般根据自己的功能需求做开发

以下仅为实现自定义用户筛选代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
add_action('restrict_manage_users', 'filter_by_my_role');
function filter_by_my_role($which)
{
 $st = '<select name="my_role_%s" style="float:none;margin-left:10px;">
    <option value="">%s</option>%s</select>';
 $options = '<option value="需要筛选的自定义字段的值">筛选菜单显示名称</option>
    <option value="同上,多个请自行添加">同上,多个请自行添加</option>';
 $select = sprintf( $st, $which, __( '自定义筛选...' ), $options );
 echo $select;
 submit_button(__( 'Filter' ), null, $which, false);
}

add_filter('pre_get_users', 'filter_users_by_my_role_section');
function filter_users_by_my_role_section($query)
{
 global $pagenow;
 if (is_admin() && 'users.php' == $pagenow) {
  $top = $_GET['my_role_top'] ? $_GET['my_role_top'] : null;
  $bottom = $_GET['my_role_bottom'] ? $_GET['my_role_bottom'] : null;
  if (!empty($top) OR !empty($bottom))
  {
   $section = !empty($top) ? $top : $bottom;
   $meta_query = array (array (
      'key' => 'my_user_tag',//修改为你的自定义字段key
      'value' => $section,
      'compare' => 'LIKE'
   ));
   $query->set('meta_query', $meta_query);
  }
 }
}
原文链接:https://xiaohost.com/5235.html,转载请注明出处。
0