Phụ thuộc vào bạn đang ở đâu. Nếu bạn đang ở trên một trang số ít (ví dụ: chỉ hiển thị một {{Chèn loại bài đăng ở đây}}), bạn có thể sử dụng get_queried_object
, nó sẽ tìm nạp đối tượng bài đăng.
<?php
if (is_singular()) {
$author_id = get_queried_object()->post_author;
$address = get_the_author_meta('user_email', $author_id);
}
Nếu bạn ở bất cứ nơi nào khác, bạn có thể sử dụng $wp_query
đối tượng toàn cầu và kiểm tra thuộc tính của nó $posts
. Điều này nên làm việc trên các trang số ít là tốt.
<?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);
}
Bạn cũng có thể chỉ "bắt đầu sai" vòng lặp và tua lại để lấy ID tác giả. Điều này sẽ không phát sinh bất kỳ lần truy cập cơ sở dữ liệu bổ sung hoặc tương tự. WordPress tìm nạp tất cả các bài viết cùng một lúc (tại thời điểm viết bài). rewind_posts
chỉ đặt lại $post
đối tượng bài hiện tại (toàn cầu ) về đầu mảng. Nhược điểm là điều này có thể khiến loop_start
hành động phát hỏa sớm hơn bạn muốn - không phải là một vấn đề lớn, chỉ là điều cần lưu ý.
<?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();