web-dev-qa-db-ja.com

投稿のユーザーメタデータを取得する方法

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);
}

他のユーザーが投稿すると、自分のメタデータを取得できません。どうやって?

1
Sylar

投稿の作者を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をトリガーし、それ以外をトリガーすることでtrueget_userdata()に渡しますが、これは明らかに機能しません。

詳細については、コードリファレンスの この ページをご覧ください。

1
Jack Johansson