Tôi đang xây dựng một phần trên một trang web nơi tôi đang hợp nhất hai loại bài đăng khác nhau thành một vòng lặp, và sau đó hiển thị chúng một cách ngẫu nhiên. Vấn đề là, tôi đang gặp khó khăn trong việc tìm cách giới hạn số lượng bài đăng trên mỗi loại.
Đây là những gì tôi đã thử:
Một truy vấn với nhiều loại bài đăng có thể đạt được với một mảng:
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
... nhưng không thể giới hạn số lượng bài đăng nhất định cho mỗi loại.
Hợp nhất hai mảng đối số truy vấn trước khi chạy WP_Query trên đó:
$photos = array( 'post_type' => 'photos', 'posts_per_page' => 15, 'orderby' => 'rand' ); $quotes = array( 'post_type' => 'quotes', 'posts_per_page' => 5, 'orderby' => 'rand' ); $args = $photos + $quotes; // Also tried array_merge( $photos, $quotes );
Không có may mắn về điều này. Điều gì xảy ra là biến sau
$quotes
ghi đè$photos
và chỉ hiển thị dấu ngoặc kép.Hợp nhất hai đối tượng WP_Query với nhau thông qua typecasting:
$photos_query = new WP_Query( $photos ); $quotes_query = new WP_Query( $quotes ); $result = (object)array_merge( (array)$photos_query, (array)$quotes_query );
... và như thế.
Tôi có thể có thể sử dụng một truy vấn SQL trực tiếp đến cơ sở dữ liệu, nhưng tôi cần có thể kết hợp hai loại bài đăng riêng biệt này cho một vòng lặp, được sắp xếp ngẫu nhiên, VÀ giới hạn ở một số lượng bài đăng nhất định cho mỗi loại.
Cảm ơn bạn đã giúp đỡ!