Móc sớm nhất để có được bài đăng $ / $ đáng tin cậy


8

Hành động sớm nhất có thể mà tôi có thể nối vào nơi tôi có thể truy cập các $post/$postsbiến toàn cục ở cả mặt trước và mặt sau? Tôi đã thử xem qua tài liệu tham khảo Codex , tài liệu tham khảo của Adam Brown và lướt qua nguồn nhiều lần nhưng không có nhiều may mắn để tìm thấy một tài liệu tốt.

pre_get_postslà quá sớm; Sử dụng posts_selectionkhông hoạt động nếu bạn muốn thực hiện cuộc gọi get_posts () thứ hai trong khi gọi lại; và template_redirectkhông chạy về phía quản trị viên. the_postcó thể sớm hơn so template_redirectvới mặt trước, nhưng nó cũng không chạy ở mặt sau. Lý tưởng nhất là tôi muốn thứ gì đó chạy ngay trước khi get_post()/get_posts()trở về, nhưng tôi không thấy thứ gì như vậy.

Trước đây tôi đã sử dụng the_postsbộ lọc, nhưng tôi thích một hành động hơn vì nó đúng hơn về mặt kỹ thuật.

Ngay bây giờ tôi chỉ cần nối hai lần; một lần sử dụng template_redirectcho mặt trước và một lần nữa sử dụng admin_xml_nscho mặt sau. Mặc dù vậy, tôi không thực sự thích điều đó, vì logic của tôi không liên quan về mặt ngữ nghĩa với một trong những cái móc đó, và có vẻ như đây là một nhu cầu rất phổ biến và nên có một cái móc như "post_get_posts" (ala pre_get_posts) hoạt động cả từ hai phía.

Câu trả lời:


12

Đối với tất cả các trang quản trị và trang đầu ngoại trừ màn hình chỉnh sửa bài đăng riêng lẻ ( wp-admin/post.php), 'wp'là móc nối đáng tin cậy nhất để nhận các giá trị toàn cầu.

http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-includes/ class-wp.php.source.html # l486

Bạn có thể thấy ở đó nó cháy ngay sau khi WP::main()cháy WP::register_globals(). Vấn đề với việc sử dụng những thứ như post_resultsget_postsnó sẽ chạy mỗi khi bạn thực hiện một truy vấn cho bài viết. 'wp'chỉ kích hoạt chức năng WP::main(), đó là những gì mà lõi WP sử dụng để chạy truy vấn yêu cầu chính của trang.

Đối với màn hình chỉnh sửa bài đăng, có vẻ như móc đầu tiên bạn có thể sử dụng đáng tin cậy 'add_meta_boxes'. Bạn chỉ cần đảm bảo rằng bạn đang ở trên một trang cốt lõi khi kết nối, mặc dù nó vượt qua $postđối tượng toàn cầu làm đối số thứ hai (đầu tiên là $post_typebài viết hiện tại).


4

posts_resultslà bộ lọc trên kết quả truy vấn thô. xem dòng 2627 trongwp-includes/query.php .

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.