ขึ้นอยู่กับว่าคุณอยู่ที่ไหน หากคุณอยู่ในหน้าเอกพจน์ (เช่นแสดงเพียง {{แทรกประเภทโพสต์ที่นี่}}) คุณสามารถใช้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);
}
คุณสามารถเพียงแค่ "เริ่มต้นผิด" วนซ้ำและย้อนกลับเพื่อจับ ID ผู้แต่ง สิ่งนี้จะไม่ทำให้เกิดความนิยมของฐานข้อมูลเพิ่มเติมหรือสิ่งที่คล้ายกัน WordPress เรียกโพสต์ทั้งหมดในครั้งเดียว (ในขณะที่เขียน) 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();