Sự khác biệt giữa get_posts & WP_Query
Bạn có thể xem get_posts()
như một giảm bớt WP_Query
. Trong thực tế nhìn vào nguồn :
//... prepares query array $r
$get_posts = new WP_Query;
return $get_posts->query($r);
get_posts()
sử dụng WP_Query
, nhưng chỉ trả về một mảng các bài đăng - không có gì hơn. Hơn nữa, nó đặt:
$r['no_found_rows'] = true;
Thông thường (theo mặc định với WP_Query
đối tượng) - WordPress truy vấn tổng số bài đăng có bao nhiêu - ngay cả khi bạn chỉ sau 10. đầu tiên. Nó thực hiện điều này để nó có thể thực hiện phân trang. Vì vậy, get_posts()
thực sự là (hơi) nhanh hơn (nó cũng bỏ qua các bài viết dính).
Sử dụng cái nào ...
Nếu bạn chỉ cần một mảng các bài đăng và không cần sử dụng đối tượng truy vấn get_posts()
. Mặt khác, nếu bạn cần quyền truy cập vào các phương thức đối tượng truy vấn, hoặc phân trang hoặc các bài đăng dính ở trên cùng, bạn nên sử dụng WP_Query
.
WP_Query
có cùng loại bài đăng và trạng thái mặc định.