it-swarm.com.de

iD des Autors außerhalb der Schleife abrufen

Ich muss die Metabox für das Post-Edit-Dashboard mit der E-Mail des Autors (oder anderen Benutzer-Metafeldern) einfügen. Es kann also bearbeitet werden, wenn der Administrator diesen Beitrag überprüft.

$meta_id = get_the_author_meta( 'user_email', $user_id );

$meta_box = array(
    'id' => 'my-meta-box',
    'title' => 'DANE FIRMY',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',
    'fields' => array(
        array(
            'name' => 'E-mail box',
            'id' => 'mail',
            'type' => 'text',
            'std' => $meta_id
        )
    )
);

Dieser Code funktioniert, wenn $ user_id eine Ganzzahl ist (wenn ich dort zum Beispiel 4 manuell eingebe), ich aber die aktuelle Autoren-ID ($user_id) dynamisch abrufen möchte.

get_the_author_meta('user_mail') sollte ohne Angabe von $user_id funktionieren (Codex sagt das :)), aber Code befindet sich in functions.php und außerhalb der Schleife, sodass dies nicht funktioniert. Ich beginne mit Wordpress und PHP, damit ich nicht weiß, was ich als nächstes tun soll.

Auch das ausprobiert:

global $post;
$user_id=$post->post_author;
14
th3rion

Der einfachste Weg wäre get_post_field() :

$post_author_id = get_post_field( 'post_author', $post_id );

Weitere Informationen zu diesem Problem finden Sie unter Diese StackOverflow-Antwort .

24
Mayeenul Islam

Sie können Folgendes verwenden:

/**
 * Gets the author of the specified post. Can also be used inside the loop
 * to get the ID of the author of the current post, by not passing a post ID.
 * Outside the loop you must pass a post ID.
 *
 * @param int $post_id ID of post
 * @return int ID of post author
*/
function wpse119881_get_author( $post_id = 0 ){
     $post = get_post( $post_id );
     return $post->post_author;
}
7
Stephen Harris