Estoy construyendo una sección en un sitio donde fusiono dos tipos de publicaciones diferentes en un bucle y luego las visualizo al azar. El problema es que me cuesta encontrar una manera de limitar la cantidad de publicaciones por tipo.
Esto es lo que he intentado:
Se puede lograr una consulta con múltiples tipos de publicaciones con una matriz:
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
... pero no puede limitarse a un cierto número de publicaciones por tipo.
Fusionar dos matrices de argumentos de consulta antes de ejecutar WP_Query en él:
$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 );
No hay suerte en esto. Lo que sucede es que la última variable
$quotes
sobrescribe$photos
y solo muestra las comillas.Fusionar dos objetos WP_Query juntos mediante la conversión de texto:
$photos_query = new WP_Query( $photos ); $quotes_query = new WP_Query( $quotes ); $result = (object)array_merge( (array)$photos_query, (array)$quotes_query );
... y así.
Probablemente podría usar una consulta SQL directamente a la base de datos, pero necesito poder combinar estos dos tipos de publicaciones separadas para un bucle, organizadas al azar, y limitadas a una cierta cantidad de publicaciones por tipo.
¡Gracias por tu ayuda!
fuente
UNION
algún tipo de sql para cada post_type?@mridual aggarwal su respuesta es muy buena pero desafortunadamente no combina realmente los 2
wp_query
, solo muestra las publicaciones de ambos en orden, quiero decir 5 publicaciones de la primera y 5 de la segunda, pero no ordenadas todas en una, así que tengo esto solución y logró exactamente el objetivo para mí al menosfuente