Depende de donde estes. Si está en una página singular (p. Ej., Solo muestra un solo {{Insertar tipo de publicación aquí}}), puede usar get_queried_object
, lo que buscará el objeto de publicación.
<?php
if (is_singular()) {
$author_id = get_queried_object()->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
Si está en otro lugar, puede usar el $wp_query
objeto global y verificar su $posts
propiedad. 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 puede simplemente "iniciar en falso" el bucle y rebobinarlo para obtener la identificación del autor. Esto no generará ningún impacto adicional en la base de datos o similares. WordPress recupera todas las publicaciones a la vez (en el momento de la escritura). rewind_posts
simplemente restablece el objeto de publicación actual (el global $post
) al comienzo de la matriz. La desventaja es que esto puede hacer que la loop_start
acción se dispare mucho antes de lo que quieres, no es un gran problema, solo algo a 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();