So greifen Sie auf Autorendaten aus der Kopfzeilenaktion zu

Ich füge eine function zur Überschrift hinzu:

add_action('wp_head', 'mine'); function mine() { global $authordata; $avatar_url = get_avatar_ur($authordata->user_email); // .... } 

Aber ich trying to get property of non-object den Fehler: trying to get property of non-object . Ich denke, das liegt daran, dass ich im Header und nicht im Post bin.

Wie kann ich auf die Authordata-Daten von der Kopfzeile zugreifen und nur wenn in einer Post-Seite?

Solutions Collecting From Web of "So greifen Sie auf Autorendaten aus der Kopfzeilenaktion zu"

Die globale $authordata Variable ist nur dann standardmäßig verfügbar, wenn die $wp_query->is_author() && isset($wp_query->post) erfüllt ist.

$authordata bedeutet, dass Sie nicht auf $authordata innerhalb einer einzelnen Post-Seite zugreifen können.

Sie können versuchen, Autorendaten über $wp_query :

 add_action('wp_head', function() { global $wp_query; $userdata = get_userdata($wp_query->post->post_author); $avatar_url = get_avatar_ur($userdata->user_email); ... }, 10, 0); 

Da die Paste perfekt für dich gearbeitet hat, lass mich daraus eine Antwort machen.

Sie können den Autor eines bestimmten Beitrags immer mit bestimmten Methoden erhalten, verwenden Sie dafür get_post_field( 'post_author', $post_id ) .

Um die Daten eines bestimmten Benutzers zu erhalten, gibt es die function get_userdata() . Wir übergeben die Autoren-ID als ersten Parameter an diese function, um die Autorendaten außerhalb der Schleife zu erhalten und wo die Post-Daten gesetzt sind:

 add_action('wp_head', 'mine'); function mine() { if ( !is_single() ) return; // this is not a single post if ( empty( ( $author = (int) get_post_field( 'post_author', get_the_ID() ) ) ) ) return; // no author was caught $authordata = get_userdata( $author ); $avatar_url = get_avatar_url($authordata->user_email); // .... } 

Dies funktioniert immer so lange, wie der Typ des einzelnen Beitrags post . Um zu Seiten zu expandieren, rufen Sie is_page() oder zu benutzerdefinierten Post-Typen is_singular()