Depende de donde estés. Si está en una página singular (por ejemplo, solo muestra un solo {{Insert Post Type Here}}), puede usar get_queried_object
, que recuperará el objeto de la publicación.
<?php
if (is_singular()) {
$author_id = get_queried_object()->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
Si estás en otro lugar, puedes usar el objeto global $wp_query
y verificar su propiedad $posts
. Esto también debería funcionar en 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);
}
También puedes simplemente "iniciar en falso" el bucle y rebobinarlo para obtener el ID de autor. Esto no incurrirá en ningún golpe de base de datos adicional o similar. WordPress recupera todos los mensajes a la vez (en el momento de la escritura). rewind_posts
simplemente restablece el objeto de la publicación actual (el $post
global) al principio de la matriz. La desventaja es que esto puede hacer que la acción loop_start
se dispare mucho antes de lo que usted quiere, no es un gran problema, solo es algo que debe tener en cuenta.
<?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();