2つの異なる投稿タイプを1つのループにマージし、それらをランダムに表示するサイトにセクションを構築しています。問題は、タイプごとの投稿数を制限する方法を見つけるのに苦労していることです。
これが私が試したものです:
複数の投稿タイプを持つ1つのクエリは、配列で実現できます。
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
...しかし、タイプごとの特定の数の投稿に制限することはできません。
WP_Queryを実行する前に、2つのクエリ引数配列をマージします。
$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
、引用符のみが表示されます。型キャストを介して2つの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クエリを使用することもできますが、これらの2つの別々の投稿タイプを1つのループに組み合わせ、ランダムに配置し、タイプごとに一定数の投稿に制限する必要があります。
ご協力いただきありがとうございます!