public static function get_all_user_meta($user_ids = array()) {
global $wpdb;
foreach ($user_ids as $user_id) {
$meta_sql = $wpdb->query($wpdb->prepare("SELECT meta_key, meta_value FROM {$wpdb->usermeta} WHERE user_id = %d", $user_id));
$data = array();
foreach ($wpdb->last_result as $k => $v) {
$data[$v->meta_key] = $v->meta_value;
}
}
return $data;
}
Он принимает массив идентификаторов для разбиения на страницы запроса. 8 за раз. $ data возвращает только один массив, а не восемь, он должен возвращаться.Почему эта функция возвращает только одно значение массива? (foreach)
Назначение этой функции состоит в том, чтобы выбрать несколько записей из того же столбца и назначить им собственные имена, а затем добавить их к существующим массивам соответственно перед возвратом.
Потому что вы их перезаписью. Удалите '$ data = array();' из цикла 'foreach'. Кроме того, измените '$ data [$ v-> meta_key]' на '$ data [$ v-> meta_key] []'. –
Вы также выбрасываете все данные, которые вы помещаете в '$ data' каждый раз, когда вы делаете' $ data = array(); '. Поместите это * перед * первым «foreach». –