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?
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.
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.