在wordpress中获取多个用户的元数据

时间:2017-03-14 12:29:07

标签: wordpress

我在表格wp_usermetameta_key user_last_activity以及meta_value下有a:12:{}类似12的商店用户活动的插件是用户ID。

所以,如果我以id:12的用户身份登录,我的当前页面将运行此代码:

$user = get_user_id();
$activity = get_user_meta($userid, 'user_last_activity', true);

var_dump($activity); 

所以,这就是它。除非,如果我以管理员身份登录,我希望所有用户都能看到所有活动。

那么,无论如何都要获得所有用户meta?目前我正在盲目地做

foreach(range(1, 1000) as $value){
    $activity = get_user_meta($value, 'user_last_activity', true);
    var_dump($activity); 
}

我假设有1000个用户,但你可以看到这些限制。

2 个答案:

答案 0 :(得分:1)

您可以使用get_users() function获取您网站上的所有用户,然后循环访问这些用户以获取用户活动。

$users = get_users(); // get array of WP_User objects
foreach ( $users as $user ) {
    $activity = get_user_meta( $user->ID, 'user_last_activity', true );
    var_dump( $activity );
}

答案 1 :(得分:0)

我建议对user_meta执行单个查询,而不是在foreach循环中运行get_user_meta

global $wpdb;

$results = $wpdb->get_results("
SELECT user_id, meta_value as 'user_last_activity'
FROM $wpdb->usermeta
WHERE `meta_key` = 'user_last_activity' 
");

var_dump($results);