Setup_postdata ($ post) làm gì?


13

Codex định nghĩa nó là 'Thiết lập dữ liệu bài toàn cầu. Giúp định dạng kết quả truy vấn tùy chỉnh để sử dụng thẻ Mẫu. ' Tôi không thực sự hiểu điều này.

Đây là một ví dụ mã:

global $post;
$args = array( 'numberposts' => -1);
$posts = get_posts($args);
foreach( $posts as $post) : setup_postdata($post);
echo $post->ID;
endforeach; 

Xin vui lòng giải thích?

Câu trả lời:


16

Các hàm thẻ mẫu dựa trên các biến toàn cục để truy cập bài đang được xử lý và truy xuất dữ liệu từ nó hoặc liên quan đến nó.

Biến chính của chúng là $postgiữ đối tượng bài. Trong ví dụ của bạn không rõ ràng, nhưng điều đang xảy ra là vòng lặp của bạn gán dữ liệu cho $post, nếu tên cho phép lặp không phải là $postbạn cần phải làm điều đó một cách rõ ràng ( global $post; $post = $some_other_post;).

Tuy nhiên, có một loạt các mục tiêu khác và mục đích setup_postdata()là điền chúng vào dữ liệu. Nếu bạn nhìn vào nguồn cụ thể là:

global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;

Lưu ý rằng trong hầu hết các trường hợp, bạn nên gọi wp_reset_postdata()sau đó để trả lại toàn cầu về trạng thái ban đầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.