Прежде всего, Multisite - это не то, что я ищу. У меня есть 5 веб-сайтов, использующих Wordpress на разных доменах, для которых я хотел бы включить учетные записи пользователей. Мне нужно, чтобы пользовательские данные были доступны для всей сети, и когда пользователь создает учетную запись, он также получает мгновенный доступ ко всем другим веб-сайтам. То, что я пытаюсь сделать, не рекомендуется Wordpress при использовании Multisite:
Если вы планируете создавать сайты, которые тесно связаны между собой, которые совместно используют данные или пользователей, то многосайтовая сеть может оказаться не лучшим решением. - http://codex.wordpress.org/Before_You_Create_A_Network (1-й абзац, 3-е предложение)
Я попытался использовать «трюк с таблицей общих пользователей», как упомянуто здесь http://wordpress.org/support/topic/multiple-sites-same-users-how и здесь http://xentek.net/articles/528/ внедрение-wordpress-shared-users-table-trick / и ряда других мест ... проблема в том, что этой информации 2-7 лет, и я использую Wordpress 3.5.1, и этот "трюк" не не похоже на работу.
Я попытался вставить этот код в wp-config в $table_prefix
строке.
define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
Короче говоря, я не думаю, что этот трюк больше работает, так как я вообще не могу войти на второй сайт на стороне администратора.
Любые предложения о том, как лучше связать эти данные?
CUSTOM_USER_TABLE
бы не работать ... Посмотрите, есть ли что-то здесь: wordpress.stackexchange.com/search?q=CUSTOM_USER_TABLEОтветы:
Хорошо, во-первых, я чувствую себя идиотом, хотя в мою защиту большинство статей, которые говорят об этом, не упоминают очень важную деталь в создании этой работы. Ответ заключается в том, что вам нужно установить разрешение как минимум для одного администратора в базе данных. Эту информацию можно найти в Кодексе здесь: http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables
После того, как вы настроите файл wp-config.php, обязательно внесите изменения в главную таблицу usermeta (в моем случае wp_usermeta), строку wp_capabilities, и столбец meta_value. Сделайте это через phpMyAdmin.
Примечание. Сделайте это, чтобы хотя бы один пользователь-администратор вошел в систему. После входа в систему вы можете настроить все другие роли пользователей / администраторов из бэкэнда.
Для каждого создаваемого веб-сайта необходимо, чтобы префикс нового сайта назначался роли администратора.
В моем случае, поскольку у меня это работает только на 2 сайтах, на данный момент это выглядит так:
Первая строка устанавливает разрешения для префикса таблицы по умолчанию (в данном случае wp_), а вторая строка устанавливает разрешения для второго веб-сайта (в данном случае с префиксом tbs_).
Спасибо brasofilo за комментарий, который заставил меня копать немного дальше, чтобы наконец решить мою проблему!
Я надеюсь, что этот ответ может помочь другим, у которых была такая же проблема, как и у меня.
источник
При совместном использовании wp_users и wp_meta возникает другая проблема, другая установка WordPress распознает пользователей, но не распознает роли пользователей, приходящих с другого веб-сайта . Роль отображается как неопределенная.
Итак, вы отредактировали свой wp-config.php как требуется:
Я думаю, что самый простой способ сделать это, не вмешиваясь в работу с БД, - это использовать внутренние компоненты wp. При входе в систему можно назначить роль. Допустим, нам нужна роль участника для всех и роль администратора для пользователя 'superman'.
Таким образом, пользователи, пришедшие с первоначального веб-сайта, получают роль «участник» при входе в систему.
http://codex.wordpress.org/Class_Reference/WP_User
источник
Я должен был создать новую строку:
meta_key='tbs_capabilities' meta_value='a:1:{s:13:"administrator";b:1;}'
и
user_id=1
. Метод, который вы описали, не сработал.источник