Здравствуйте! Как сделать что бы база пользователей была одна на два сайта? Прочитала кучу инфо в интернете но всё это не работает, возможно потому что для более ранних версий. И самое главное без включения ( multisite ).
Код:
define(‘CUSTOM_USER_TABLE’, ‘wp_users’);
define(‘CUSTOM_USER_META_TABLE’, ‘wp_usermeta’); — добавлялся В wp-config.php
Далее:
В файл wp-config.php ОСНОВНОГО блога
define(‘CUSTOM_CAPABILITIES_PREFIX’, ‘wp_’);
В файл wp-config.php второго блога (которые будет заимстовать юзеров)
define(‘CUSTOM_CAPABILITIES_PREFIX’, ‘wp_’);
define(‘CUSTOM_USER_TABLE’, ‘wp_users’);
define(‘CUSTOM_USER_META_TABLE’, ‘wp_usermeta’);
define(‘COOKIE_DOMAIN’, ‘.site.ru’); // указываем свой домен. точку перед началом уберать не надо
define(‘COOKIEPATH’, ‘/’);
копируем из конфига первого блога четыри ключа безопастности
define(‘AUTH_KEY’, ‘bla-bla-bla’);
define(‘SECURE_AUTH_KEY’, ‘bla-bla-bla’);
define(‘LOGGED_IN_KEY’, ‘bla-bla-bla’);
define(‘NONCE_KEY’, ‘bla-bla-bla’);
wp-includes/class-wp-user.php в функции _init_caps заменить
if ( empty($cap_key) ) $this->cap_key = $wpdb->get_blog_prefix() . ‘capabilities’; else $this->cap_key = $cap_key;
на
if (defined (‘CUSTOM_CAPABILITIES_PREFIX’)) { $this->cap_key = CUSTOM_CAPABILITIES_PREFIX . ‘capabilities’; } else { $this->cap_key = $wpdb->prefix . ‘capabilities’; }
Основной сайт: "https://site.com"
Второй сайт: "https://site.com/site"
После чего невозможно авторизоваться. Что здесь не правильно?
Так что никто не сталкивался с такой задачей? Если это невозможно через wp-config может попробовать синхронизацию в базе wp-users? Если есть возможность подскажите пожалуйста что правильней в этой корявости. Заранее спасибо за ответ!
если сервер один и аккаунт на хостинге у сайтов один, то указать данные для подключения к нужной базе в файле wp-config.php несложно, но в опциях сайта жестко указывается домен, вот его надо подменять при получении из БД в зависимости от ip сайта и подставлять свое значение через фильтр, я бы попробовал покопать в этом направлении