निर्भर करता है कि आप कहां हैं। यदि आप एक विलक्षण पृष्ठ पर हैं (उदाहरण के लिए, केवल {{इन्सर्ट पोस्ट टाइप हियर}}) दिखा रहे हैं, तो आप उपयोग कर सकते हैं get_queried_object, जो पोस्ट ऑब्जेक्ट लाएगा।
<?php
if (is_singular()) {
$author_id = get_queried_object()->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
यदि आप कहीं और हैं, तो आप वैश्विक $wp_queryवस्तु का उपयोग कर सकते हैं , और इसकी $postsसंपत्ति की जांच कर सकते हैं। यह एकवचन पृष्ठों पर भी काम करना चाहिए।
<?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);
}
आप लूप को केवल "झूठी शुरुआत" भी कर सकते हैं और लेखक आईडी को हथियाने के लिए इसे रिवाइंड कर सकते हैं। यह किसी भी अतिरिक्त डेटाबेस हिट या पसंद नहीं करेगा। वर्डप्रेस सभी पोस्ट को एक साथ (लिखने के समय) लाती है। सरणी की शुरुआत में rewind_postsबस वर्तमान पोस्ट (वैश्विक $post) ऑब्जेक्ट को रीसेट करता है । नकारात्मक पक्ष यह है कि loop_startइससे आग लगने का कारण हो सकता है, इससे पहले कि आप इसे चाहते हैं - एक बहुत बड़ा सौदा नहीं, बस कुछ के बारे में पता होना चाहिए।
<?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();