web-dev-qa-db-fra.com

Obtenez des utilisateurs qui aiment le post

J'ai un ajax comme le système de messages lorsqu'un utilisateur, comme un message, le système ajoute un méta de message à ce message qui s'appelle (post_liked_users). Exemple de valeur méta post_likes_users: a:1:{s:6:"user-1";i:1;}

Maintenant, comment obtenir les utilisateurs qui aiment la publication?

Remarque: je ne peux pas utiliser foreach uniquement comme Jack Johansson answer. Je dois utiliser WP_User_Query ou WP_Query car je souhaite utiliser offest et number.

1
Trello

Il semble que vous stockiez les données dans la méta de la publication, pas dans celle de l'utilisateur. Par conséquent, vous devez le récupérer en obtenant directement la méta de cette publication, et non en effectuant une requête de l'utilisateur.

Disons que l'ID de votre message est $post_id:

Tout d’abord, récupérez la méta par get_post_meta():

$users = get_post_meta ( $post_id, 'post_liked_users', false );

J'ai supposé que vous stockiez les données sous forme de données sérialisées multiples (en fonction de votre question), j'ai donc défini le dernier paramètre de la fonction ci-dessus sur false, ce qui permettra d'extraire chaque méta et d'essayer d'extraire le tableau:

if ( $users ) {
    foreach ( $users as $user ) {
        // $user[0] is the user-1 string here, and 
        // $user[1] is the integer ( their ID )
        echo get_user_by( 'id', $user[1] )->display_name;
    }
}
0
Jack Johansson