Es soll ja Fälle geben, in denen man Benutzerdaten nicht mehrfach vorhalten will und sich mit ein und demselben Passwort an mehreren Stellen einloggen mag. Genau so einen Fall hatte ich die Tage zu bearbeiten. Glücklicherweise hatte ich schon vor längerer Zeit einmal „Shared Users“ entdeckt und mich daran erinnert. Damit läßt sich von mehreren WordPress-Installationen (bei gleicher DB) gemeinsam auf die Userdaten einer Installation zugreifen. Klingt einfach, isses aber leider nicht. Zumindest bei mir ging es nicht einfach mit aktivieren und unter Einstellungen die passende „DB“ auswählen. Ich wurde stets ausgeloggt, bevor die Änderung umgesetzt wurde. Sofern man die Präfixe seiner Tabellen kennt, kann man allerdings (unter Komfortverlust) auch direkt in den Einstellungen unter „shared_users_prefix“ das entsprechende Präfix Eintragen. Und schwupps werden die Daten aus Präfix_users bei allen WP-Installationen verwendet. Die Daten in Präfix_usermeta verwaltet jedes WP weiterhin separat (ergo auch die Benutzerrechte). Achja, das Plugin sollte man nur mit einem leeren WP verwenden, oder aber vorher Vorsorge treffen, dass die User in allen WP’s die gleiche ID haben (bei mir gings, ich musste nur 6 User „synchronisieren“, wichtig sind alle Tabellen in denen die UserID vorkommt (_users, _usermeta, _posts, _comments)). So, nun war es soweit, man konnte sich in allen WP’s mit den gleichen Daten anmelden…
Aber irgendwie fehlte noch was… Wie wärs damit, in einem WP Einloggen und bei allen eingeloggt sein (SSI)? Geht, und ist im Grunde auch gar nicht so schwer. Sofern sich die WP’s nicht nur eine Datenbank teilen, sondern auch unter der gleichen Domain laufen, lässt sich dies recht einfach bewerkstelligen. Als erstes muss das „secret“ der WP-Installationen angeglichen werden (unter „Alle Einstellungen“). Als nächtes gilt es die wp-config.php zu erweitern, bei mir haben folgende Einstellungen funktioniert:
// Need some more things
define(‚SECRET_KEY‘, ‚Zufällige Zeichenkombination (inkl. Sonderzeichen)‘);
$cookiehash = md5(‚z.B. domain.de‘);
define(‚COOKIEHASH2‘, $cookiehash);
define(‚USER_COOKIE‘, ‚wordpressuser_‘ . COOKIEHASH2);
define(‚PASS_COOKIE‘, ‚wordpresspass_‘ . COOKIEHASH2);
define(‚AUTH_COOKIE‘, ‚wordpress_‘ . COOKIEHASH2);
define(‚COOKIEPATH‘, ‚/‘ );
define(‚SITECOOKIEPATH‘, ‚/‘ );
define(‚COOKIE_DOMAIN‘, ‚domain.de‘);
Das wars auch schon, zumindest bei mir scheint damit momentan alles ohne Probleme zu funktionieren.