multisite – ¿Puedo fusionar 2 nuevas WP_Query ($ variable)?

Pregunta:

Estoy ejecutando una red multisitio y he configurado una consulta SQL que usa swith_to_blog (); y consulta las publicaciones.

¿Hay alguna manera de declarar la consulta dentro de una nueva WP_Query y fusionar 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 que incluyera publicaciones consultadas de mi nueva consulta $multisite .

¿Se puede lograr esto? Solo quiero salvarme de crear una nueva configuración de shortcode jajaja

Muchas gracias de antemano. Rory

EDITAR ========

Lo que tengo es:

$portfolio = array();
$portfolio = $settings;

Más abajo, mi función de cartera "después de todas las configuraciones de $ ['opciones']" tengo:

$portfolio_query = new WP_Query( $portfolio );

$portfolio_query usa un bucle en una plantilla de página.

Quiero agregar una consulta adicional a esto así:

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 fusionar en wp_query(); .

Entonces, tomando 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?

En segundo lugar, con respecto a la sobreescritura de claves de matriz array_merge … ¿Cómo haría para detener una sobreescritura?

Respuesta:

No hará mucho bien simplemente fusionar los argumentos, necesita fusionar la matriz de publicaciones resultante y el recuento de post_count. Esto funciona para mi:

//setup your queries as you already do
$query1 = new WP_Query($args_for_query1);
$query2 = new WP_Query($args_for_query2);

//create new empty query and populate it with the other two
$wp_query = new WP_Query();
$wp_query->posts = array_merge( $query1->posts, $query2->posts );

//populate post_count count for the loop to work correctly
$wp_query->post_count = $query1->post_count + $query2->post_count;

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım