J'essaie d'obtenir les métadonnées de l'utilisateur à partir d'un article, mais seulement de l'utilisateur:
$args = array(
'numberposts' => 10,
'offset' => 0,
'category' => 0,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true
);
$recent_posts = wp_get_recent_posts( $args, ARRAY_A );
foreach ($recent_posts as $post) {
$user_id = get_the_author_meta('ID', true) // is this correct
// Is there a function that I need to pass the post ID ($post["ID"])?
var_dump($user_id);
}
Lorsqu'un autre utilisateur publie un message, je ne peux pas obtenir ses métadonnées. Comment, s'il vous plaît?
Vous pouvez passer l'auteur de l'article en argument à get_the_author_meta
:
get_the_author_meta('ID', $post->post_author);
Le deuxième argument est l'ID de l'utilisateur. Ceci est stocké dans l'objet post de votre boucle, auquel vous pouvez y accéder en utilisant $post->post_author
.
La raison derrière votre code actuel qui ne fonctionne pas est cette partie de code qui est incluse dans la get_the_author_meta()
:
if ( ! $user_id ) {
global $authordata;
$user_id = isset( $authordata->ID ) ? $authordata->ID : 0;
} else {
$authordata = get_userdata( $user_id );
}
Si vous définissez le deuxième argument sur true (c'est-à-dire le $user_id
), cela déclenchera la else
, et en déclenchant le reste, vous passez une true
à la get_userdata()
, ce qui ne fonctionnera évidemment pas.
Jetez un oeil à cette page de référence du code pour plus de détails.