在管理仪表板中创建用户下拉列表

时间:2013-08-28 作者:Aaron

我试图在管理仪表板的小部件中列出一个用户列表。到目前为止,我已经显示了它,但我希望列表显示用户配置文件中的自定义字段,而不是普通的display\\u名称或ID。

迄今为止我的代码:

    function wps_userlist_dw() {

wp_dropdown_users(array(\'name\' => \'author\',
         \'exclude\'                 => \'1\',
         \'name\'                    => \'author\',
         \'selected\'                 => $user_id,
         \'show\'                    => \'ID\'
    ));

}
function add_wps_userlist_dw() {
       wp_add_dashboard_widget( \'wps_userlist_dw\', __( \'Select a User Below\' ), \'wps_userlist_dw\' );
}
add_action(\'wp_dashboard_setup\', \'add_wps_userlist_dw\' );
因此,我需要一个自定义字段(通过Cimy Extra User Fields-http://wordpress.org/plugins/cimy-user-extra-fields/). 假设我要显示的自定义字段的名称是“COMPANYNAME”。

有什么想法吗?如果在“show”值中输入“COMPANYNAME”,则整个函数不会显示。

谢谢

1 个回复
SO网友:gmazzap

wp_dropdown_users 接受来自的仅显示参数字段users 表,不是来自user_meta 桌子如果使用代码启用调试,请使用“companyname”来$show 参数您将看到如下内容:

WordPress database error: [Unknown column \'wp_users.companyname\' in \'field list\'] 选择wp\\U用户。ID,wp\\U用户。user\\u登录,wp\\u用户。来自wp\\U用户的公司名称,其中1=1 ORDER BY display\\u name ASC

所以,解决方案是创建您的自定义wp_dropdown_users 功能(wp_dropdown_users_extended?) 只需从original function 并对其进行修改。

提示:您需要的是一个使用WP_User_Query (docs) 运行meta query 如果$show 不是users表中的字段之一,然后在输出上使用此meta。

该函数可能应该这样启动:

function wp_dropdown_users_extended( $args = array() ) {
  $std_fields = array(\'ID\', \'user_login\', \'user_nicename\', \'user_email\', \'user_url\', \'display_name\');
  if ( isset($args[\'show\']) && in_array($args[\'show\'], $std_fields) ) {
    if ( isset($args[\'echo\'] && ! $args[\'echo\'] )
      return wp_dropdown_users($args);
    else
      wp_dropdown_users($args);
  } else {

    // copy here the code from wp_dropdown_users and customize it ;)    

  }
}

结束

相关推荐

The Admin Dashboard Div

如何在仪表板选项卡下wpbody div内部的管理仪表板区域中设置样式并添加新div?我想在wpbody div中插入一个新div。。。