我试图从帖子中获取用户元数据,但仅获取一个用户:
$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);
}
当其他用户发表帖子时,我无法获取他们的元数据。怎么做?
最合适的回答,由SO网友:Johansson 整理而成
您可以将帖子的作者作为参数传递给get_the_author_meta
:
get_the_author_meta(\'ID\', $post->post_author);
第二个参数是用户ID。它存储在循环中的post对象中,您可以使用
$post->post_author
.
原因您当前代码不起作用的原因是get_the_author_meta()
:
if ( ! $user_id ) {
global $authordata;
$user_id = isset( $authordata->ID ) ? $authordata->ID : 0;
} else {
$authordata = get_userdata( $user_id );
}
如果将第二个参数设置为true(即
$user_id
), 它将触发
else
, 通过触发else,您将通过
true
到
get_userdata()
, 这显然行不通。
看看this 更多详细信息,请参阅代码参考页。