2014-02-07 4 views
3

Что я пытаюсь сделать, так это обмениваться учетными данными пользователей между 2 и более установками Wordpress в одной базе данных. Я прочитал много учебников и форумов по этому поводу, но никто не дал мне четкого ответа на этот вопрос. Так в соответствии с Wordpress Codex ([1]), все, что нужно сделать, это добавить код в WP-config.php (установки ребенка) для переключения таблиц для пользователей и usermeta:Wordpress share users database for Login

define('CUSTOM_USER_TABLE', 'main_users'); 
define('CUSTOM_USER_META_TABLE', 'main_usermeta'); 

Это позволяет я должен войти в систему с именем пользователя и паролем корневых сайтов, но я получаю сообщение

У вас недостаточно прав для доступа к этой странице.

Тогда я полностью потерян. Я проверил _capabilities внутри базы данных, как указано в [1], но все еще получаю это сообщение.

Любая помощь была бы действительно оценена, так как я работаю над этим в течение 3 дней. Благодаря!

[1] http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables

ответ

4

Это не совсем правильный путь идти о нем. Если вам удастся это сделать, я думаю, вы откроете себе некоторые серьезные уязвимости безопасности.

Вместо этого вы должны изучить создание WordPress Multisite install. Детали MultiSite здесь: http://codex.wordpress.org/Create_A_Network

Вы также можете узнать больше о MultiSite здесь: http://mashable.com/2012/07/26/beginner-guide-wordpress-multisite/

Попытки получить два отдельных количество установок для обмена информации не является нормальным способом атаковать эту проблему ... большинство времена с этим требованием, я видел, что люди используют Multisite.

+0

Большое спасибо за ваш быстрый ответ! Кажется, что это правильный способ сделать то, что я хочу. Я уже создал сеть, добавил как корневой, так и дочерний сайты. Мне нужно: когда кто-то регистрируется на корневом сайте, этот пользователь не должен будет снова регистрироваться на сайте ребенка (подсайта). Из того, что я читал, это возможно в Сети, но я должен найти способ сделать это. – manosim

+0

Что-то вроде этого: http://wordpress.org/plugins/multisite-user-management/ – evanv

+0

Пробовал это, но даже если в сетевых пользователях он показывает, что пользователь регистрируется на обоих сайтах, я до сих пор не могу войти в систему сайт (зарегистрирован с основного сайта). Также в бэкэнде подсайта пользователь не появляется. Это странно, потому что во время установки сети мне не нужно было добавлять ничего в wp-config на сайте. – manosim

1

Решение:

Наша цель состоит в том, чтобы создать два WordPress сайтов, которые разделяют имена и те же пользователь. После того, как пользователь подписал один сайт

, она сможет получить доступ к другому сайту с той же ролью и возможностями.

Этап 1: Чтобы использовать одни и те же пользователи и таблицы usermeta, установки WordPress должны совместно использовать одну и ту же базу данных. Добавить префикс первой установки wordpress first_ и второй таблицы установки wordpress second_. в той же базе данных.

Шаг 2: Когда работает первый веб-сайт WordPress, мы можем отредактировать его конфигурационный файл. Открыть /first/wp-config.php

и добавьте следующие строки выше «прекратить редактирование» комментария:

$table_prefix = 'first_'; 
define('WP_DEBUG', true); 
define('WP_DEBUG_LOG', true); 
define('WP_DEBUG_DISPLAY', false); 
@ini_set('display_errors', 0); 

// custom users and usermeta tables 
define('CUSTOM_USER_TABLE', $table_prefix . 'users'); 
define('CUSTOM_USER_META_TABLE', $table_prefix . 'usermeta'); 

/* That's all, stop editing! Happy blogging. */ 

шаг 3: Мы закончили с первой установкой. Затем мы должны скопировать wp-config.php из первой установочной папки, а

вставьте ее в корневую папку второй установки.Будьте осторожны, чтобы изменить значение $ table_prefix соответственно:

открытым /second/wp-config.php.and добавить следующие строки выше «прекратить редактирование» комментарий:

$table_prefix = 'second_'; 
    define('WP_DEBUG', true); 
    define('WP_DEBUG_LOG', true); 
    define('WP_DEBUG_DISPLAY', false); 
    @ini_set('display_errors', 0); 

     // custom users and usermeta tables 
    define('CUSTOM_USER_TABLE', 'first_users'); 
    define('CUSTOM_USER_META_TABLE', 'first_usermeta'); 

шаг 4: записи в wp-config.php для совместного использования файлов cookie.

//Share cookies 
    define('COOKIE_DOMAIN', '.xyz.com'); 
    define('COOKIEHASH', 'aee53c017c29dc0d3ae37253fc8cbfd8'); 

шаг 5: Открыть таблицу "first_usermeta" и скопировать из колонки meta_key - first_capabilities и first_user_level в second_capabilities и second_user_level. enter image description here

шаг 6: При запуске второй установки, мы должны установить несуществующий адрес электронной почты для пользователя с правами администратора, как WordPress находит ряд существующих пользователей из таблицы first_users.

Для более подробной информации https://kinsta.com/blog/share-logins-wordpress/.

Это работа для меня.