Depende de onde você está. Se você estiver em uma página singular (por exemplo, apenas mostrando um único {{Insert Post Type Here}}), você pode usar o get_queried_object
que buscará o objeto de postagem.
<?php
if (is_singular()) {
$author_id = get_queried_object()->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
Se você estiver em outro lugar, poderá usar o $wp_query
objeto global e verificar sua $posts
propriedade. Isso deve funcionar também em páginas singulares.
<?php
global $wp_query;
if (!empty($wp_query->posts)) {
$author_id = $wp_query->posts[0]->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
Você também pode simplesmente "iniciar falso" o loop e retroceder para obter o ID do autor. Isso não acarreta nenhum acerto adicional no banco de dados ou algo semelhante. O WordPress busca todas as postagens de uma só vez (no momento da redação). rewind_posts
apenas redefine o $post
objeto de postagem atual (o global ) para o início da matriz. A desvantagem é que isso pode fazer com que a loop_start
ação seja acionada mais cedo do que você deseja - não é um grande negócio, apenas algo para estar ciente.
<?php
// make sure you're at the beginning.
rewind_posts();
// start the loop
the_post();
// get what you need
$address = get_the_author_meta('user_email');
// back to normal
rewind_posts();