J'exécute un réseau multisite et j'ai configuré une requête SQL qui utilise swith_to_blog (); et interroge les messages.
Existe-t-il un moyen de déclarer la requête dans un nouveau WP_Query et de fusionner cette requête avec une autre?
Fondamentalement, si je fais cela:
$number1 = new WP_Query($multisitequery);
Puis-je le fusionner avec:
$number2 = new WP_Query($normalquery);
$normalquery
contient des paramètres tels que la pagination, par page, extrait, titre, etc. sur un shortcode de portefeuille.
Je voudrais qu'il inclue les messages interrogés à partir de ma nouvelle $multisite
requête.
Peut-on y parvenir? Je voulais juste me sauver de la création d'une toute nouvelle configuration de shortcode lol
Merci d'avance. Rory
EDIT ========
Ce que j'ai c'est:
$portfolio = array();
$portfolio = $settings;
Plus bas dans ma fonction de portfolio "après tous les $ settings ['options']" j'ai:
$portfolio_query = new WP_Query( $portfolio );
l' $portfolio_query
utilise une boucle sur un modèle de page.
Je veux ajouter une requête supplémentaire à ceci comme ceci:
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();
}
où je suppose que ce $globalcontainer
serait le tableau à fusionner dans le wp_query();
.
Donc, en tenant compte de ce que vous avez répondu, en théorie, je pourrais simplement:
$mergedqueryargs = array_merge($portfolio , $globalcontainer);
$portfolio_query = new WP_query($mergedqueryargs);
Serait-ce exact?
Deuxièmement, concernant l'écrasement de la clé du tableau array_merge ..... Comment pourrais-je arrêter un écrasement?
Je fusionne généralement leurs tableaux d'identification et fais une troisième requête. Pour garder le premier ensemble de requêtes bon marché, je ne renvoie que leurs identifiants en utilisant le paramètre champs comme ceci:
J'espère que cela t'aides
---ÉDITER---
Après ma réponse, la question d'origine est modifiée pour des détails multisites. En cas de fusion de postes multisites, cela ne fonctionne pas.
la source
'orderby' => 'post__in'
dans la dernière requête.Donc, si vous avez ceci:
Je suppose que vous les définissez quelque part précédemment?
... auquel cas, pour fusionner les deux requêtes, juste
array_merge()
les deux tableaux avant de les passer ànew WP_Query()
:Notez que l'ordre est important dans l'
array_merge()
appel. Si les deux ont la même clé de tableau, le second tableau remplacera le premier tableau.la source