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

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.