Nerede olduğuna göre değişir. Tek bir sayfadaysanız (örneğin, yalnızca tek bir {{Yazı Türünü Buraya Ekle}} gösteriyorsa), get_queried_object
yazı nesnesini getirecek olan kullanabilirsiniz .
<?php
if (is_singular()) {
$author_id = get_queried_object()->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
Başka bir yerdeyseniz, global $wp_query
nesneyi kullanabilir ve $posts
özelliğini kontrol edebilirsiniz . Bu, tekil sayfalarda da çalışmalıdır.
<?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);
}
Ayrıca döngüyü "yanlış başlatabilir" ve yazar kimliğini almak için geri sarabilirsiniz. Bu, herhangi bir ek veritabanı isabetine veya benzerine neden olmayacaktır. WordPress tüm yayınları bir kerede (yazma sırasında) getirir. rewind_posts
geçerli yazı (global $post
) nesnesini dizinin başına sıfırlar . Dezavantajı, bu, loop_start
eylemin istediğinizden daha erken patlamasına neden olabilir - büyük bir anlaşma değil, sadece farkında olması gereken bir şey.
<?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();