Estou construindo uma seção em um site onde estou mesclando dois tipos diferentes de postagem em um loop e exibindo-os aleatoriamente. O problema é que estou tendo dificuldades para encontrar uma maneira de limitar a quantidade de postagens por tipo.
Aqui está o que eu tentei:
Uma consulta com vários tipos de postagem pode ser alcançada com uma matriz:
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
... mas não pode se limitar a um determinado número de postagens por tipo.
Mesclando duas matrizes de argumentos de consulta antes de executar o 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 );
Sem sorte nisso. O que acontece é que a última variável
$quotes
substitui$photos
e mostra apenas as aspas.Mesclando dois objetos WP_Query por meio da conversão de tipo:
$photos_query = new WP_Query( $photos ); $quotes_query = new WP_Query( $quotes ); $result = (object)array_merge( (array)$photos_query, (array)$quotes_query );
... e assim por diante.
Provavelmente eu poderia usar uma consulta SQL diretamente no banco de dados, mas preciso combinar esses dois tipos de postagem separados para um loop, organizados aleatoriamente, E limitados a uma certa quantidade de postagens por tipo.
Obrigado pela ajuda!
fonte
UNION
algum tipo de sql para cada post_type?@mridual aggarwal sua resposta é muito muito boa, mas infelizmente não está realmente combinando os 2
wp_query
, apenas mostra os posts de ambos em organizar, quero dizer 5 posts do primeiro e 5 do segundo, mas não classificados todos em um, então eu tenho esse solução e alcançou exatamente o objetivo para mim mesmo, pelo menosfonte