ฉันกำลังสร้างส่วนบนเว็บไซต์ที่ฉันกำลังรวมโพสต์สองประเภทที่แตกต่างกันเป็นหนึ่งวงแล้วแสดงแบบสุ่ม ปัญหาคือฉันมีปัญหาในการหาวิธี จำกัด จำนวนการโพสต์ต่อประเภท
นี่คือสิ่งที่ฉันได้ลอง:
หนึ่งแบบสอบถามที่มีการโพสต์หลายประเภทสามารถทำได้ด้วยอาเรย์:
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
... แต่ไม่สามารถ จำกัด จำนวนโพสต์ต่อประเภทได้
ผสานสองอาร์เรย์อาร์กิวเมนต์แบบสอบถามก่อนที่จะใช้WP_Queryกับมัน:
$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 );
ไม่มีโชคในเรื่องนี้ สิ่งที่เกิดขึ้นคือตัวแปรหลัง
$quotes
เขียนทับ$photos
และแสดงเฉพาะเครื่องหมายคำพูดการรวมอ็อบเจ็กต์ WP_Queryสองรายการเข้าด้วยกันผ่านการแสดงตัวอย่าง:
$photos_query = new WP_Query( $photos ); $quotes_query = new WP_Query( $quotes ); $result = (object)array_merge( (array)$photos_query, (array)$quotes_query );
... และต่อไป
ฉันอาจใช้แบบสอบถาม SQL ตรงไปยังฐานข้อมูล แต่ฉันต้องสามารถรวมโพสต์สองชนิดนี้แยกกันสำหรับหนึ่งลูปจัดเรียงแบบสุ่มและ จำกัด จำนวนโพสต์ต่อประเภท
ขอบคุณสำหรับความช่วยเหลือของคุณ!