2つのインストール間でユーザーセッションを共有する際に問題がいくつかあります。
(a) http://stolenmx.com (b) http://arcade.stolenmx.com のサイト
Aと同じデータベースにBをインストールし、userとuser_metaテーブルを定義したので、ユーザーデータやユーザーなどを共有していますが、セッションをブリッジすることはできません。
私はいくつかの異なる方法でクッキーを使用しようとしましたが、何もうまくいきません。
現時点では(b)wp-configで使用しているもので、効果はありません。
define('COOKIE_DOMAIN', 'www.stolenmx.com');
define('COOKIEPATH', '/');
誰もがこれを機能させる方法を知っていますか?
私は登録とログインを管理するためにサイト(a)でUserProを実際に使っています、そして私は無効にされたwp-login.phpを持っています。 UserProがCookieを他の場所に保存している、または単に使用していないためにCookieが機能していないのはこのためですか。
また、両方のサイトに対応するCOOKIEHASH
を定義する必要があります - ランダムな32ビット文字列でうまくいきます。
デフォルトでは、COOKIEHASH
はサイトURLのMD5ハッシュであり、すべての認証関連Cookieのデフォルト名を生成するために使用されます。そのため、現時点で、クロスドメインログインが機能していないのはなぜですか(COOKIEHASH
は各サイトで異なるため、Cookieの名前は一致しません)。
詳しくは wp_cookie_constants()
を参照してください。
要約すると、両方のサイトのwp-config.php
は次のようになります。
define( 'COOKIE_DOMAIN', '.stolenmx.com' ); // Dot prefix
define( 'COOKIEPATH', '/' );
define( 'COOKIEHASH', md5( 'stolenmx.com' ) );
define( 'CUSTOM_USER_TABLE', 'wp_users' );
define( 'CUSTOM_USER_META_TABLE', 'wp_usermeta' );
TheDeadMedicの答えに加えて、両方のサイトはwp-config.phpファイルで同じキーとソルトを共有しなければなりません(私は文字列を4つのゼロに置き換えました):
define('AUTH_KEY', '0000');
define('SECURE_AUTH_KEY', '0000');
define('LOGGED_IN_KEY', '0000');
define('NONCE_KEY', '0000');
define('AUTH_SALT', '0000');
define('SECURE_AUTH_SALT', '0000');
define('LOGGED_IN_SALT', '0000');
define('NONCE_SALT', '0000');
私はこれについての詳細を記したブログ記事を作成しました: https://www.tekfused.com/wordpress/sharing-login-cookies-among-wordpress-installs/