it-swarm.com.de

Wie erhalte ich die Benutzer-Metadaten für einen Beitrag?

Ich versuche, die Benutzer-Metadaten von einem Beitrag zu bekommen, aber nur den einen Benutzer zu bekommen:

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

Wenn ein anderer Benutzer einen Beitrag erstellt, kann ich seine Metadaten nicht abrufen. Wie bitte?

1
Sylar

Sie können den Autor des Posts als Argument an get_the_author_meta übergeben:

get_the_author_meta('ID', $post->post_author);

Das zweite Argument ist die ID des Benutzers. Dies wird im Post-Objekt in Ihrer Schleife gespeichert, auf das Sie mit $post->post_author zugreifen können.

Grund

Der Grund, warum Ihr aktueller Code nicht funktioniert, ist der folgende Code, der in der Funktion get_the_author_meta() enthalten ist:

if ( ! $user_id ) {
    global $authordata;
    $user_id = isset( $authordata->ID ) ? $authordata->ID : 0;
} else {
    $authordata = get_userdata( $user_id );
}

Wenn Sie das zweite Argument auf true setzen (das ist der $user_id), wird die else ausgelöst, und durch Auslösen des else übergeben Sie eine true an die get_userdata(), was offensichtlich nicht funktioniert.

Werfen Sie einen Blick auf diese Seite der Code-Referenz für weitere Details.

1
Jack Johansson