Trabalhar com o WordPress é sempre muito simples. Hoje precisei fazer uma consulta utilizando WP_query onde as opções padrões não suportavam, então rapidamente, criei a minha opção. =D

WP_query

A classe WP_query é a responsável por realizar consultas no banco de dados do WordPress. No maior estilo CakePHP, você passa para ela argumentos em array para formular os “selects” desejados.

Um exemplo de funcionamento:

Você pode conferir na documentação oficial todas as opções disponíveis para realizar suas consultas.

Criando uma opção

Bom, isso é muito simples mesmo. A minha necessidade hoje era selecionar todos os posts iniciassem com Treinamento, ou seja, um simples post_title like 'Treinemanto%'. Para isso, criei a opção title_like.

Tudo que precisamos fazer é adicionar ao functions.php do nosso tema um filter para a função posts_where que adicione a nossa condição, caso nossa nova opção seja informada.

Agora com nossa opção devidamente criada, vamos executa-lá:

Conclusão

Se você conhece um pouco da estrutura das tabelas do WordPress, sentirá uma ótima sensação de liberdade criando/adicionando tantas opções personalizadas ao WP_query quanto você desejar.

Espero ter ajudado.
Valeu! =)


Tags: WP_query

Quer copiar esse post no seu site? Você pode!

Segundo a licença da Creative Commons 3.0 (CC BY SA 3.0) você pode copiar e distribuir esse conteúdo desde que faça menção ao autor original, para isso é só copiar esse código no final do artigo quando for publicá-lo em seu site:

<p>Artigo originalmente publicado em <em>22 de julho de 2012</em> por <strong><a href="http://pedroelsner.com/" title="Pedro Elsner, Profissional de TI - São Paulo">Pedro Elsner</a></strong>: <a href="http://pedroelsner.com/2012/07/criando-parametros-personalizados-para-wp_query/" title="Adicionando parâmetros ao WP_query do WordPress">Adicionando parâmetros ao WP_query do WordPress</a></p>
A não menção ao autor original da obra implicará em cópia e/ou distribuição ilegal de propriedade intelectual, o que é crime segundo a Lei n.º 9.610.