✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Jak podłączyć inną bazę danych w WordPress

243

Ostatnio otrzymałem pytanie jak podłączyć jeszcze jedną bazę danych do serwisu WordPress. Po pierwsze, chcę wyjaśnić, że WordPress jest zbudowany w taki sposób, że możesz uruchamiać dowolną liczbę witryn lub zarządzać dowolną funkcjonalnością z jednej bazy danych. Uważam, że nigdy nie musimy łączyć więcej niż jednej bazy danych z witryną WordPress.

Ale nadal, jeśli ktoś szuka rozwiązania na łączenie wielu baz danych, jest na to jeden hack. Korzystając z tego hacka, możesz użyć metod klasy wpdb do pobrania rekordów z innej bazy danych. Ten hack nie pozwoli ci na użycie podstawowych metod dostarczanych przez WordPress w twojej drugiej bazie danych. Funkcje takie jak get_option(), update_option(), wp_insert_post(), get_post_meta() nie będą dostępne dla innej bazy danych.

W takim przypadku użytkownik może pobierać dane z opcji, publikować tabele za pomocą zapytań SQL z metodami klasy wpdb. Te metody to get_var(), get_row(), get_col(), get_results() itd.

Połącz inną bazę danych w WordPress

Gdy musisz podłączyć inną bazę danych, utwórz instancję klasy wpdb. W ten sposób uzyskujesz dostęp do wszystkich dostępnych metod klasy wpdb. Użytkownik może używać tych metod klas bezpośrednio do interakcji z zewnętrzną bazą danych.

Na początek powinieneś mieć poświadczenia zewnętrznej bazy danych.

Jak wspomniano, musi utworzyć instancję klasy wpdb. Ta instancja powinna być dostępna w całej aplikacji WordPress. W tym celu dodaj poniższy kod w functions.phppliku.

function connect_another_db() {
    global $seconddb;
    $seconddb = new wpdb(USERNAME, PASSWORD, DATABASE_NAME, HOSTNAME);
}
add_action('init', 'connect_another_db');

Pamiętaj, aby zastąpić wszystkie symbole zastępcze rzeczywistymi wartościami. Po dodaniu powyższego kodu zostaniesz połączony z inną bazą danych. Możesz użyć tego drugiego wystąpienia, jak poniżej:

global $seconddb;
$user_count = $seconddb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
echo "<p>User count is {$user_count}</p>";

Pamiętaj, że prefiks tabeli innej bazy danych musi być taki sam, jak oryginalna baza danych. Jeśli Twój prefiks tabeli jest inny, musisz wyraźnie wspomnieć o prefiksie, jak pokazano poniżej:

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>";

Korzystając z powyższych hacków, możesz podłączyć inną bazę danych i uzyskać z niej rekordy na swojej stronie WordPress. Ale radzę nie używać wielu baz danych dla swojej witryny WordPress. Staraj się osiągnąć swój cel tylko z jednej bazy danych.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów