Вопрос или проблема
У меня есть установка WordPress в корне документа для домена, а также дополнительная установка в немедленном подкаталоге этой установки, чтобы я мог использовать разные темы для двух сайтов. Я хочу связать входы на два сайта, чтобы не нужно было входить дважды, чтобы использовать оба сайта.
Мои навыки программирования не велики, поэтому предпочтительнее простое решение или готовый плагин.
Вы можете разделить таблицы пользователей между различными установками WordPress, установив второй сайт (“Сайт B”) для использования базы данных оригинального сайта (“Сайт A”), а затем выбрав альтернативный префикс таблицы во время установки, чтобы сохранить остальные данные отдельно.
Вторая часть проблемы заключается в обмене куками для входа между двумя установками (то, что WordPress использует для отслеживания данных о входе/”сессии”). Для этого вам нужно использовать один и тот же путь к кукам для обоих сайтов.
После установки откройте файл wp-config.php
в корневой папке установки Сайта B и добавьте (или замените) следующие строки сразу после конфигурации базы данных, изменив их по мере необходимости, чтобы они соответствовали вашей конфигурации:
$cookiehash = md5("http://www.bradleycountypulse.com/"); // Используйте URL Сайта A
define('CUSTOM_USER_TABLE','wp_users'); // Измените 'wp' так, чтобы он соответствовал префиксу, установленному во время
define('CUSTOM_USER_META_TABLE','wp_usermeta'); // установки Сайта A
define('COOKIEPATH', "https://wordpress.stackexchange.com/"); // Этот путь должен указывать на корень Сайта A
define('SITECOOKIEPATH', "https://wordpress.stackexchange.com/"); // Должен совпадать с 'COOKIEPATH'
define('COOKIEHASH', $cookiehash );
Обратите внимание, что это будет работать только если две установки находятся на одном домене (что у вас и есть!).
Альтернативным решением будет настройка всей системы как единой мультисайтовой установки.
Еще одно решение (хотя и то, которое требует больше усилий) заключается в использовании пользовательских шаблонов страниц на одной установке.
Я выпустил плагин для wordpress, основанный на следующей статье:
http://subinsb.com/set-same-cookie-on-different-domains
Синхронизатор пользовательских сессий позволяет вам поддерживать пользователя в системе с одного wordpress на другой, синхронизируя данные пользователя и сессии куки на основе проверенного адреса электронной почты.
Электронная почта пользователя шифруется на основе текущего IP-адреса пользователя и секретного ключа, общего для синхронизированных установок wordpress.
Вы можете найти плагин здесь:
https://wordpress.org/plugins/user-session-synchronizer/
И участвовать здесь:
Ответ или решение
Совместное использование данных для входа/куки между несколькими установками WordPress
Введение
Если у вас есть несколько установок WordPress, и вы хотите, чтобы пользователи могли входить в обе системы, не вводя свои данные дважды, есть несколько решений. В этой статье мы рассмотрим способы обмена данными для входа и пользователями между двумя установками WordPress, чтобы обеспечить более удобный пользовательский опыт.
Ассимиляция пользователей и куки
Для достижения желаемого результата необходимо следовать нескольким шагам. Мы обсудим наиболее эффективные методы, включая интеграцию базы данных и изменение настроек конфигурации WordPress.
1. Использование одной базы данных
Первый подход заключается в использовании одной базы данных для обеих установок WordPress. Чтобы настроить это:
-
Установка WordPress Site B: Установите вторую установку WordPress (Site B) с той же базой данных, что и первая установка (Site A). При установке выберите другой префикс таблиц, чтобы отделить данные пользователей и избежать конфликтов.
-
Конфигурация wp-config.php: После установки вам нужно обновить файл
wp-config.php
во второй установке. Добавьте или замените следующие строки:
$cookiehash = md5("http://www.bradleycountypulse.com/"); // Используйте URL сайта A
define('CUSTOM_USER_TABLE', 'wp_users'); // Замените 'wp' на префикс таблиц, используемый на сайте A
define('CUSTOM_USER_META_TABLE', 'wp_usermeta'); // Аналогично, используя префикс сайта A
define('COOKIEPATH', "/"); // Настройка пути к кукам, чтобы он указывал на корень сайта A
define('SITECOOKIEPATH', "/"); // Должен совпадать с 'COOKIEPATH'
define('COOKIEHASH', $cookiehash); // Хеш куки, использующий URL
- Обратите внимание: Данный метод будет работать только если обе установки расположены на одном домене.
2. Настройка куки
Важный аспект — настройка куки для синхронизации сессий. Убедитесь, что обе установки используют одинаковый путь куки, чтобы пользователи могли оставаться в системе, переходя между сайтами.
3. Плагины
Если ваши навыки программирования ограничены, существует готовый плагин, который поможет решить проблему. User Session Synchronizer — это плагин, который позволяет синхронизировать данные пользователей и куки-сессию между двумя установками WordPress по проверенному адресу электронной почты.
- Использование плагина: Плагин использует зашифрованный адрес электронной почты, основанный на текущем IP-адресе пользователя и секретном ключе, который должен быть общим для обеих установок. Вы можете найти плагин по следующей ссылке:
User Session Synchronizer на WordPress.org
4. Мультисайт WordPress
Как альтернативный подход, вы можете рассмотреть возможность создания мультисайтовой сети WordPress. Эта опция позволяет управлять несколькими сайтами из одной установки WordPress, что упрощает работу с пользователями и их сессиями. Подробности по настройке можно найти в документации:
Заключение
Обмен данными для входа и куками между двумя установками WordPress — это задача, которую можно решить разными способами, включая интеграцию баз данных, конфигурацию файла wp-config.php
и использование специальных плагинов. Выбор метода будет зависеть от вашего уровня подготовки и предпочтений. Если вы ищете легкое решение, то использование выпущенного плагина может стать оптимальным вариантом.