获取用户(...)仅返回一个用户

时间:2019-04-09 作者:TTT

我有一个用户ID数组,我想获取每个用户的数据。我第一次想到编写一个经典的SQL查询,但我发现WordPress为它提供了集成函数。然而get_users(...) 只返回1个用户,但应返回3个。我做错了什么?

var_dump($targetUsersIDs);
$targetUsers =  get_users([\'include\' => $targetUsersIDs]);
var_dump($targetUsers);
的输出var_dump($targetUsersIDs);

array (size=3)
  0 => 
    object(stdClass)[4785]
      public \'ID\' => string \'1\' (length=1)
  1 => 
    object(stdClass)[4784]
      public \'ID\' => string \'2\' (length=1)
  2 => 
    object(stdClass)[4783]
      public \'ID\' => string \'4\' (length=1)
开始输出var_dump(targetUsers);

array (size=1)
  0 => 
    object(WP_User) ...

4 个回复
SO网友:Julian

这个include 钥匙打开get_users 需要ID(数字)数组。您将为其提供一个具有ID属性的对象数组。如果您查看第一个var转储,您将看到这一点。WP将其转换为一个数字,并将该数字返回给用户,该数字不是您想要的。

SO网友:TTT

有人发布了此解决方案,然后删除了他们的帖子:

$targetUsers =  get_users([\'include\' => wp_list_pluck($targetUsersIDs,\'ID\')]);
这就是我现在使用的地方。

如果有什么原因是错误的,请立即告诉我(我不确定用户是否删除了他们的答案)。

SO网友:Qaisar Feroz

像这样做

var_dump($targetUsersIDs);

$ids = array();
foreach ( $targetUsersIDs as $id ) $ids[] = $id;

$targetUsers =  get_users([\'include\' => $ids ] );
var_dump($targetUsers);
我希望这会有所帮助。

SO网友:leymannx

您应该使用WP_User_Query 为了这个。

$user_ids = [ 1, 2, 3, 4, 5 ];

$args = [
  \'include\' = $user_ids,
]

$user_query = new WP_User_Query( $args );
现在,您可以简单地在用户循环/foreach中使用结果。

相关推荐

如何将ACF设置的变量传递给header.php?

我已经为我的帖子创建了一个带有高级自定义字段的自定义字段。我的变量是set product\\u image,因此我可以使用以下方式打印它:<?php the_field(\'product_image\'); ?> 但我需要在我的网站标题部分中打印它header.php, 仅适用于单发帖子。<?php if( is_single(\'post\') ) { ?> <img src=\"<?php the_field(\'product_ima