Wie benutze ich die Benutzertabelle einer anderen database für WordPress Benutzer?

Ich habe eine Webseite, die gerade in CI läuft und eine Benutzertabelle hat. Ich mache eine WordPress-Website und brauche sie, um die Benutzertabelle der CI-database für Benutzer zu verwenden, um sich in WordPress anzumelden. Wie kann ich nur diese Tabelle einer anderen database verwenden? Beide DBs sind auf demselben Server. Auch muss ich zwischen Admin und normalen Benutzern unterscheiden, da Admins das Dashboard betreten können. Ich habe dieses Plugin ausprobiert, aber sobald ich dieses Plugin aktiviere, hört meine Login-Seite auf zu arbeiten und zeigt einen Fehler von 500 Servern an.

Solutions Collecting From Web of "Wie benutze ich die Benutzertabelle einer anderen database für WordPress Benutzer?"

Sie benötigen kein Plugin, um mehrere db-Verbindungen in CI zu erstellen. Mach einfach folgendes:

Verbindung 1 – /application/config/database.php

Dies ist Ihre Standard-CI-databasekonfiguration

$db['default']['hostname'] = 'DB_HOST'; $db['default']['username'] = 'DB_USER'; $db['default']['password'] = 'DB_PASSWORD'; $db['default']['database'] = 'DB_NAME'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE; 

Verbindung 2 – /application/config/database.php

Dupliziere diesen Code-Block und benenne die $db['default'] mit etwas wie $db['secondary']

 $db['secondary']['hostname'] = 'SECONDARY_DB_HOST'; $db['secondary']['username'] = 'SECONDARY_DB_USER'; $db['secondary']['password'] = 'SECONDARY_DB_PASSWORD'; $db['secondary']['database'] = 'SECONDARY_DB_NAME'; $db['secondary']['dbdriver'] = 'mysql'; $db['secondary']['dbprefix'] = ''; $db['secondary']['pconnect'] = TRUE; $db['secondary']['db_debug'] = TRUE; $db['secondary']['cache_on'] = FALSE; $db['secondary']['cachedir'] = ''; $db['secondary']['char_set'] = 'utf8'; $db['secondary']['dbcollat'] = 'utf8_general_ci'; $db['secondary']['swap_pre'] = ''; $db['secondary']['autoinit'] = TRUE; $db['secondary']['stricton'] = FALSE; 

Initiiere und verwende Verbindung 2

 function getWordpressUsers() { $secondaryDb = $this->load->database('secondary', TRUE); $query = $secondaryDb->select('user_email, display_name')->get('wp_users'); var_dump($query); } 

Weitere Informationen dazu finden Sie unter https://codeigniter.com/user_guide/database/connecting.html

In WordPress ist es nicht möglich, Benutzer zwischen zwei getrennten Installationen auf zwei getrennten databaseen zu teilen.

Es könnte nur durch Hardcoding möglich sein:

  1. Hardcode WP_User-class Verbindung zu anderen database und Benutzer von dort abrufen
  2. Hardcode function get_metadata (), die für die Tabelle wp_usermeta eine Verbindung zu einer anderen database herstellt und Benutzer von dort abruft

aber die erwähnte Lösung ist natürlich nicht zu empfehlen, da sie nicht update-sicher ist.