privatemsg_unread_count()に引数を渡さない場合、現在ログインしているユーザーの未読メッセージの数が返されます。この関数は引数を受け入れます。これはユーザー オブジェクトです。
ユーザー ID のリストがある場合は、次のコードを使用して、各ユーザーの未読メッセージの数を取得できます。
foreach ($uids as $uid) {
$account = user_load($uid);
$count = privatemsg_unread_count($account);
// ...
}
ユーザー ID のリストがなく、各ユーザーの未読メッセージの数を知りたい場合は、次のコードを使用できます。
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'user')
->entityCondition('entity_id', 0, '>')
->propertyCondition('status', 1)
->addTag('DANGEROUS_ACCESS_CHECK_OPT_OUT');
$result = $query->execute();
if (isset($result['user'])) {
$accounts = user_load_multiple(array_keys($result['user']));
foreach ($accounts as $account) {
$count = privatemsg_unread_count($account);
// ...
}
}