Multisites e as novidades do WordPress 4.6

Instalações WordPress que usam multisites, não terão mais “complicações” de se localizar um conteúdo em um determinado site e em uma determinada rede.

multisites
Seus amigos merecem saber desse conteúdo?

Para as instalações do WordPress que usam multisites, sempre há aquelas “complicações” de se localizar um determinado conteúdo em um determinado site e em uma determinada rede. Criar classes separadas e criar querys elaboradas, parece ser tarefa cansativa. Isso ainda preocupado com a performance e segurança. Um exemplo dessa consulta básica, é vista nesse SQL:

"SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' ".

Mediante há algumas solicitações na comunidade, foram criadas duas classes que resolvem justamente essas questões, são elas a WP_Site_Query e WP_Network_Query.

Multisites o WP_Site_Query e o WP_Network_Query

São utilidades voltadas para instalações multisites que está disponível a partir da versão 4.6 do WordPress, que visa uma buscas flexíveis de sites na rede, por meios dos metódos WP_Site_Query ou get_sites( ) e WP_Network_Query ou get_networks ( ). É possível realizar consultas usando a tabela $wpdb->blogs ou $wpdb->sites por meio de ID, domínio caminho e muito mais. Pode-se ainda associar a filtros e ações, como por exemplo:

WP_Site_Query WP_Network_Query
Actions: parse_site_query e pre_get_sites parse_network_query e pre_get_networks
Filters: the_sites, site_search_columns, sites_clauses e found_sites_query  the_networks, networks_clauses e found_networks_query

As consultas na versão 4.6 do WordPress se resumem ao uso das classes WP_Site_Query e WP_Network_Query que retorna em uma matriz (array) com a lista de sites correspondentes aos critérios informados para a pesquisa, as entradas da matriz (array) são objetos instanciado pelo WP_Site e WP_Network.

// WP_Site_Query arguments
$args = array (
);
// The Site Query
$site_query = new WP_Site_Query( $args );
// The Network Query
$network_query = new WP_Network_Query( $args );

Conclusão

Essas soluções somam e muito, e acima de tudo mantem garantido a performance e segurança para os usuários. Todas as consultas realizadas ficam armazenados em cache como objeto persistente de um grupo de site no caso do WP_site ou rede para WP_Network, ambas globais.