Imから投稿からユーザーメタデータを取得しようとしていますが、1人のユーザーのみを取得しています。
$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);
}
他のユーザーが投稿すると、自分のメタデータを取得できません。どうやって?
投稿の作者をget_the_author_meta
の引数として渡すことができます。
get_the_author_meta('ID', $post->post_author);
2番目の引数はユーザーの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 );
}
2番目の引数をtrue($user_id
)に設定すると、それはelse
をトリガーし、それ以外をトリガーすることでtrue
をget_userdata()
に渡しますが、これは明らかに機能しません。
詳細については、コードリファレンスの この ページをご覧ください。