Estoy ejecutando una red multisitio y he configurado una consulta sql que usa swith_to_blog (); y consulta las publicaciones.
¿Hay alguna manera de que pueda declarar la consulta dentro de una nueva WP_Query y realmente combinar esa consulta con otra?
Básicamente si hago esto:
$number1 = new WP_Query($multisitequery);
¿Puedo fusionarlo con:
$number2 = new WP_Query($normalquery);
$normalquery
contiene configuraciones como paginación, por página, extracto, título, etc. en un shortcode de cartera.
Me gustaría incluir publicaciones consultadas de mi nueva $multisite
consulta.
¿Se puede lograr esto? Solo quiero salvarme de crear una nueva configuración de shortcode lol
Muchas gracias de antemano. Rory
EDITAR ========
Lo que tengo es:
$portfolio = array();
$portfolio = $settings;
Más abajo en la función de mi cartera "después de todas las configuraciones $ ['opciones']" tengo:
$portfolio_query = new WP_Query( $portfolio );
el $portfolio_query
utiliza un bucle en una plantilla de página.
Quiero agregar una consulta adicional en esto de esta manera:
global $wpdb, $blog_id, $post;
$blogs = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM wp_blogs ORDER BY blog_id" ) );
$globalcontainer = array();
foreach ($blogs as $blog){
switch_to_blog($blog->blog_id);
$globalquery = query_posts($args);
$globalcontainer = array_merge( $globalcontainer, $globalquery );
restore_current_blog();
}
donde supongo que $globalcontainer
sería la matriz para fusionarse en el wp_query();
.
Entonces, teniendo en cuenta lo que ha respondido, en teoría podría simplemente:
$mergedqueryargs = array_merge($portfolio , $globalcontainer);
$portfolio_query = new WP_query($mergedqueryargs);
¿Sería eso correcto?
Segundo, con respecto a la sobrescritura de la clave de matriz array_merge ..... ¿Cómo haría para detener una sobrescritura?
Generalmente combino sus matrices de ID y hago una tercera consulta. Para mantener barato el primer conjunto de consultas, solo devuelvo sus ID utilizando parámetros de campo como este:
Espero que esto ayude
---EDITAR---
Después de mi respuesta, la pregunta original se edita para obtener detalles de varios sitios. En caso de fusión de sitios múltiples, esto no funciona.
fuente
'orderby' => 'post__in'
en la última consulta.Entonces, si tienes esto:
¿Supongo que los define en algún lugar anterior?
... en cuyo caso, para fusionar las dos consultas, solo
array_merge()
las dos matrices antes de pasarlas anew WP_Query()
:Tenga en cuenta que el orden es importante en la
array_merge()
llamada. Si ambos tienen la misma clave de matriz, la segunda matriz sobrescribirá la primera matriz.fuente