Estou executando uma rede multisite e configurei uma consulta sql que usa swith_to_blog (); e consulta as postagens.
Existe uma maneira de declarar a consulta dentro de um novo WP_Query e realmente mesclar essa consulta com outra?
Basicamente, se eu fizer isso:
$number1 = new WP_Query($multisitequery);
Posso fundi-lo com:
$number2 = new WP_Query($normalquery);
$normalquery
contém configurações como paginação, por página, trecho, título etc ... em um código de acesso do portfólio.
Gostaria que ele incluísse postagens consultadas da minha nova $multisite
consulta.
Isso pode ser alcançado? Apenas querendo me salvar de criar uma nova configuração de shortcode lol
Muito obrigado antecipadamente. Rory
EDIT ========
O que eu tenho é:
$portfolio = array();
$portfolio = $settings;
Mais abaixo na minha função de portfólio "depois de todas as $ settings ['options']", tenho:
$portfolio_query = new WP_Query( $portfolio );
o $portfolio_query
usa um loop em um modelo de página.
Eu quero adicionar uma consulta extra para isso assim:
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();
}
onde eu assumo que $globalcontainer
seria a matriz para mesclar no wp_query();
.
Então, levando em consideração o que você respondeu, em teoria eu poderia simplesmente:
$mergedqueryargs = array_merge($portfolio , $globalcontainer);
$portfolio_query = new WP_query($mergedqueryargs);
Isso seria correto?
Segundo, em relação à substituição da chave da matriz array_merge ... Como eu interromperia uma substituição?
Geralmente, mesclo suas matrizes de ID e faço uma terceira consulta. Para manter o primeiro conjunto de consultas barato, retorno apenas os IDs usando o parâmetro fields como este:
Espero que isto ajude
---EDITAR---
Depois da minha resposta, a pergunta original é editada para obter detalhes sobre vários locais. No caso de postagem multisite mesclada, isso não funciona.
fonte
'orderby' => 'post__in'
a última consulta.Então, se você tem isso:
Eu suponho que você os defina em algum lugar anterior?
... nesse caso, para mesclar as duas consultas, apenas
array_merge()
as duas matrizes antes de passá-las paranew WP_Query()
:Observe que a ordem é importante na
array_merge()
chamada. Se ambos tiverem a mesma chave de matriz, a segunda matriz substituirá a primeira matriz.fonte