Primeiro de tudo, o Multisite não é o que estou procurando. Eu tenho 5 sites usando o Wordpress, todos em domínios separados para os quais gostaria de habilitar contas de usuário. Eu preciso que os dados do usuário sejam compartilhados em toda a rede e, quando um usuário criar uma conta, eles também terão acesso instantâneo a todos os outros sites. O que estou tentando fazer não é recomendado pelo Wordpress ao usar o Multisite:
Se você planeja criar sites fortemente interconectados, que compartilhem dados ou compartilhem usuários, uma rede multissite talvez não seja a melhor solução. - http://codex.wordpress.org/Before_You_Create_A_Network (1º parágrafo, 3ª frase)
Eu tentei usar o "truque da tabela de usuários compartilhados", como mencionado aqui http://wordpress.org/support/topic/multiple-sites-same-users-how e aqui http://xentek.net/articles/528/ implementando o truque da tabela de usuários compartilhados wordpress / e vários outros lugares ... o problema é que essas informações têm de 2 a 7 anos e estou usando o Wordpress 3.5.1 e esse "truque" não parece funcionar.
Eu tentei inserir esse código no wp-config ao redor da $table_prefix
linha.
define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
Para encurtar a história, acho que esse truque não funciona mais, pois não consigo fazer login no segundo site do lado do administrador.
Alguma sugestão sobre qual seria a melhor maneira de vincular esses dados?
CUSTOM_USER_TABLE
não iria funcionar ... ver se há algo aqui: wordpress.stackexchange.com/search?q=CUSTOM_USER_TABLERespostas:
Ok, antes de tudo, me sinto um idiota, embora em minha defesa a maioria dos artigos que falam sobre isso não mencione um detalhe muito crucial para fazer esse trabalho. A resposta é que você precisa definir permissão para pelo menos um administrador no banco de dados. Esta informação pode ser encontrada no Codex aqui: http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables
Depois de configurar o arquivo wp-config.php, é essencial que você faça uma alteração na tabela master usermeta (no meu caso, wp_usermeta) no campo wp_capabilities row e na meta_value. Faça isso através do phpMyAdmin.
Nota: Faça isso para pelo menos um administrador de usuário fazer login. Você pode ajustar todas as outras funções de usuário / administrador no back-end assim que entrar.
Para cada site criado, ele precisa ter esse novo prefixo de sites atribuído à função de usuário administrador.
No meu caso, como eu só tenho esse trabalho em 2 sites no momento, fica assim:
A primeira linha define permissões para o prefixo da tabela padrão (neste caso, wp_) e a segunda linha define as permissões para o segundo site (neste caso, com o prefixo tbs_).
Agradeço ao brasofilo pelo comentário que me levou a cavar um pouco mais para finalmente resolver meu problema!
Espero que esta resposta possa ajudar outras pessoas que estavam tendo o mesmo problema que eu.
fonte
Ao compartilhar wp_users e wp_meta, há outro problema, outra instalação do wordpress reconhece os usuários, mas não reconhece as funções dos usuários provenientes de outro site . O papel aparece como indefinido.
Então, você editou seu wp-config.php conforme necessário:
Eu acho que a maneira mais fácil de fazer isso, sem mexer com o db, é usando wp internals. No login, é possível atribuir uma função. Digamos, precisamos da função de colaborador para todos e da função de administrador para o usuário 'super-homem'.
Portanto, os usuários provenientes do site inicial recebem a função de 'colaborador' quando fazem login.
http://codex.wordpress.org/Class_Reference/WP_User
fonte
Eu tive que criar uma nova linha:
meta_key='tbs_capabilities' meta_value='a:1:{s:13:"administrator";b:1;}'
e
user_id=1
. O método que você descreveu não funcionou.fonte