WP24Horas
PARCEIRO RECOMENDADO Vai colocar um WordPress no ar? Comece com uma hospedagem que acompanha o seu projeto. Conhecer a HostGator link patrocinado

Desenvolvimento e Programação

Como Consultar Dados no BD do WordPress usando a Classe wpdb?

Por Asllan Maciel4 min de leitura
Como Consultar Dados no BD do WordPress?

Quero mostrar a você nesse post Como consultados dados no BD do WordPress diretamente em tabelas MySQL usando a Classe wpdb.

Essa classe de objetos de dados nativa do WordPress permite executar facilmente várias ações no banco de dados MySQL.

Basicamente quando você chamar a classe wpdb, você vai fazer uma solicitação do arquivo includes/wp-db.php.

Portanto, para executar consultas SQL, vamos usar essa classe incrível, primeiro instanciando-a, em seguida usando alguns dos seus muitos métodos.

Você pode ver a lista de métodos aqui.

Na verdade, o que precisamos fazer para usar essa classe é usar a variável global $wpdb antes de rodar qualquer função da classe.

global $wpdb;

Como executar consultas no Banco de Dados do WordPress?

Depois que chamamos nossa variável global $wpdb podemos já executar algumas funções – ou métodos – da classe wpdb.

Um dos mais usados talvez seja o método $wpdb->query que serve para rodar qualquer comando SQL, mas é muito utilizado para SELECT e DELETE.

$wpdb->query : Qualquer consulta MySQL

$wpdb->query($wpdb->prepare ("DELETE FROM $wpdb->tabelaDesejada WHERE ID = 1" ));

Como você pode ver no código acima, usamos tabelaDesejada para referenciar uma tabela do banco de dados na nossa consulta.

$wpdb->get_var : Retorna uma única variável

$count_posts = $wpdb->get_var( $wpdb->prepare(" SELECT COUNT(*) FROM $wpdb->wp_posts" ));
echo "$count_posts";

Perceba acima que, como estamos fazendo um SELECT apenas para contar o número de registros, podemos usar o método get_var para esse propósito.

$wpdb->get_row : Retorna uma única linha

Se você quer buscar apenas um registro em uma tabela, basta usar o método get_row().

Tem um truquezinho aqui que você pode usar que é passar os parâmetros PRODUCT_ARRAY ou PRODUCT_ARR_ALL no final do método.

Já que o retorno do get_row é um objeto, você pode usar esses dois parâmetros para retornar um array associativo ou com índice numérico, respectivamente:

$wpdb->get_row( $wpdb->prepare( "SELECT * from $wpdb->posts WHERE ID=1"), PRODUCT_ARRAY );

$wpdb->get_results : Retorna múltiplas linhas

Vimos acima o método para retornar uma única linha, mas aqui está o método para retornar múltiplas linhas:

$wpdb->get_results( $wpdb->get_results( $wpdb->prepare( " SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' "));

É fácil ver que estamos fazendo uma consulta no WordPress para buscar todos os posts publicados – Isso retorna um objeto.

$wpdb->insert : Inserir registro

Para adicionar um registro a uma tabela no WordPress é muito simples com o método insert()

$wpdb->insert($table, $data);

Note que estamos passando uma variável que vai conter o nome da tabela (table) e uma para passar os dados a serem inseridos ($data).

$wpdb->update : Atualiza um registro

Para atualizar um registro a uma tabela no WordPress é muito simples com o método update()

$wpdb->update( $table, $data, $where );

$wpdb->num_rows : Retorna o número de linhas

Se você quer saber o número de linhas que uma consulta retornaria, basta usar o método num_rows().

$wpdb->insert($table, $data);

$wpdb->print_error : Exibe erros de SQL

Se você deseja debugar seus comandos SQL, pode usar o método print_error() para mostrar qualquer erro com seu SQL:

$wpdb->show_errors();

//Ex:ID (3000) inexistente:
$wpdb->get_row( $wpdb->prepare(" SELECT * FROM $wpdb->posts WHERE ID = 3000"); 
$wpdb->print_error();

Você pode usar o método show_errors() antes de executar a consulta SQL e o print_error() logo após a execução.

$wpdb->last_query : Imprime a última consulta

Isso pode ser bem útil quando uma determinada consulta não está funcionado da forma esperada:

var_dump( $wpdb->last_query ); 

Esse foi um guia bem rápido de utilização da classe wpdb e você pode deixar suas dúvidas nos comentários abaixo.

Vamos utilizar bastante essa classe para vários objetivos nos próximos posts, então, vale a pena você dar uma estudada nela.

Grande abraço,

Sobre o autor

Asllan Maciel

Asllan Maciel, Fundador do WP24Horas, Consultor de Marketing Digital e amante do Empreendedorismo Digital. Tem um caso de amor com o WordPress.