Como conectar outro banco de dados no WordPress
Recentemente, recebi uma pergunta sobre como conectar mais um banco de dados ao site WordPress. Em primeiro lugar, quero deixar claro que o WordPress foi desenvolvido de forma que você possa executar qualquer número de sites ou gerenciar qualquer funcionalidade a partir de um único banco de dados. Acredito que nunca precisamos conectar mais de um banco de dados ao site do WordPress.
Mesmo assim, se alguém está procurando a solução para conectar vários bancos de dados, existe um hack para isso. Usando este hack, você pode usar os métodos da classe wpdb para buscar os registros de outro banco de dados. Este hack não permitirá que você use os métodos básicos fornecidos pelo WordPress em seu segundo banco de dados. As funções como get_option(), update_option (), wp_insert_post (), get_post_meta () não estarão acessíveis para seu outro banco de dados.
Nesse caso, o usuário pode buscar os dados de opções, postar tabelas usando consultas SQL com os métodos da classe wpdb. Esses métodos são get_var (), get_row (), get_col (), get_results (), etc.
Conecte outro banco de dados no WordPress
Quando você precisar conectar outro banco de dados, crie uma instância da classe wpdb. Fazendo isso, você obtém acesso a todos os métodos disponíveis da classe wpdb. O usuário pode usar esses métodos de classe diretamente para interagir com o banco de dados externo.
Para começar, você deve ter as credenciais de um banco de dados externo.
Como disse, ele precisa criar uma instância da classe wpdb. Essa instância deve estar disponível em todo o aplicativo WordPress. Para isso, adicione o código abaixo no functions.php
arquivo.
function connect_another_db() {
global $seconddb;
$seconddb = new wpdb(USERNAME, PASSWORD, DATABASE_NAME, HOSTNAME);
}
add_action('init', 'connect_another_db');
Certifique-se de substituir todos os marcadores de posição pelos valores reais. Ao adicionar o código acima, você está conectado a outro banco de dados. Você pode usar esta segunda instância conforme abaixo:
global $seconddb;
$user_count = $seconddb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";
Observe que o prefixo de sua tabela de outro banco de dados deve ser o mesmo do banco de dados original. Se o prefixo da sua tabela for diferente, você precisará mencioná-lo explicitamente, conforme mostrado abaixo:
global $seconddb;
$prefix = 'wp2_'; // here 'wp2' is the table prefix of second database
$user_count = $seconddb->get_var( "SELECT COUNT(*) FROM $prefix"."users" );
echo "<p>User count is {$user_count}</p>";
Usando os hacks acima, você pode conectar outro banco de dados e obter registros dele em seu site WordPress. Mas eu recomendo não usar vários bancos de dados para o seu site WordPress. Tente atingir seu objetivo apenas com um único banco de dados.
Artigos relacionados
- Como construir um elemento customizado ou widget
- Como adicionar código após a tag do corpo no WordPress
- Como adicionar endpoints personalizados à API WordPress