Come collegare un altro database in WordPress
Di recente, ho ricevuto una domanda su come connettere un altro database al sito Web di WordPress. Innanzitutto, voglio chiarire che WordPress è costruito in modo da poter eseguire qualsiasi numero di siti o gestire qualsiasi funzionalità da un singolo database. Credo che non abbiamo mai bisogno di connettere più di un database al sito Web di WordPress.
Tuttavia, se qualcuno sta cercando la soluzione per connettere più database, allora c’è un trucco per questo. Usando questo trucco, puoi usare i metodi della classe wpdb per recuperare i record da un altro database. Questo hack non ti consentirà di utilizzare i metodi principali forniti da WordPress sul tuo secondo database. Le funzioni come get_option(), update_option(), wp_insert_post(), get_post_meta() non saranno accessibili per l’altro tuo database.
In tal caso, l’utente può recuperare i dati dalle opzioni, inviare tabelle utilizzando query SQL con i metodi della classe wpdb. Questi metodi sono get_var(), get_row(), get_col(), get_results(), ecc.
Connetti un altro database in WordPress
Quando è necessario connettere un altro database, creare un’istanza della classe wpdb. In questo modo, avrai accesso a tutti i metodi disponibili della classe wpdb. L’utente può utilizzare questi metodi di classe direttamente per interagire con il database esterno.
Per iniziare, dovresti avere le credenziali di un database esterno.
Come detto, è necessario creare un’istanza della classe wpdb. Questa istanza dovrebbe essere disponibile in tutta l’applicazione WordPress. Per questo, aggiungi il codice seguente nel functions.php
file.
function connect_another_db() {
global $seconddb;
$seconddb = new wpdb(USERNAME, PASSWORD, DATABASE_NAME, HOSTNAME);
}
add_action('init', 'connect_another_db');
Assicurati di sostituire tutti i segnaposto con i valori effettivi. Dopo aver aggiunto il codice sopra sei connesso con un altro database. Puoi usare questa seconda istanza come di seguito:
global $seconddb;
$user_count = $seconddb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";
Tieni presente che il prefisso della tabella di un altro database deve essere lo stesso del database originale. Se il prefisso della tua tabella è diverso, devi menzionare il prefisso esplicitamente come mostrato di seguito:
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 gli hack di cui sopra puoi connettere un altro database e ottenere record da esso sul tuo sito Web WordPress. Ma consiglio di non utilizzare più database per il tuo sito Web WordPress. Cerca di raggiungere il tuo obiettivo solo dal singolo database.
articoli Correlati
- Come creare un widget Elementor personalizzato
- Come aggiungere il codice dopo il tag del corpo in WordPress
- Come aggiungere endpoint personalizzati all’API di WordPress