Si alguna vez has querido saber cómo crear dos instalaciones separadas de WordPress pero que tengan los mismos usuarios aquí lo tienes.
La idea parte de un hilo en los foros de soporte de WordPress, en la que se hablaba de cómo compartir tablas de usuarios.
Para empezar, ambas instalaciones deberían tener la misma versión de WordPress, al menos para evitar errores de cambio de gestión de las tablas.
También, ambas instalaciones deberían usar la misma base de datos (no sé si funcionaría en bases de datos distintas) así que repasa este artículo para saber como se hace. También es recomendable (siempre) hacer copia de seguridad de cualquier base de datos previa, antes de tener que lamentarse por algún error cometido. Pero vamos a ello …
Vamos a plantear un caso: Blog A y Blog B. El blog A ha sido tu blog principal pero tu quieres añadir una segunda instalación con los mismos usuarios, el blog B. También presuponemos que estás usando el prefijo por defecto para las tablas de WordPress en el blog A: wp_
.
Pues bien, los prefijos para las tablas del blog B deberían ser distintas. Lo cambiaremos a algo así en el fichero wp-config.php
del blog B:
$table_prefix = 'blogb_';
También en wp-config.php
busca esta línea:
/* That's all, stop editing! Happy blogging. */
Y justo encima le añades lo siguiente:
define('CUSTOM_USER_TABLE', 'wp_users'); define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
Con esto le decimos a la instalación del blog B que quieres usar las tablas user
y usermeta
de la instalación del blog A. Por otra parte, el resto del contenido del blog B tendrá sus tablas únicas y distintas. ¿A que no es complicado?
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
off topic:
una preguntita….:
Saben como puedo encontrar un plugin que coloque una barra de video como la que tiene esta web en la parte superior:
http://startcooking.com/video/328/Three-Good-Kitc…
les agredecería mucho su ayuda.
Saludos.
Pues no es complicado y me bien fantástico para un par de blogs de unos amigos.
Muchas gracias!
Hola,
He seguido el tutorial al pie de la letra y desde el blog B no consigo loguear, me dice: "No tienes autorización para acceder a estas páginas" cuando lo intento.
He planteado la pregunta en el foro.
Salu2
Solucionado, me limité a modificar wp_config.php sobre un segundo blog ya instalado y eso NO funciona.
tengo un problema…
y la verdad no tengo idea de como solucionarlo..
para mi puede que sea la vercion del wordpress.. es 2.8.4 lo baje en ingles.. ypuse los lenguajes en español.. (cree la carpeta…. )
el error dice que los datos de la base de datos.. (SQL) no son validos…
http://sz5xda.bay.livefilestore.com/y1p9QFYfVfgGU…
osea.. yo al hacer el wp-config.php copie el primero (blog A) y en el segundo.. solo le agregue.
los wp-config.php son..
Blog A:
[inicio del codigo]
<code>
define('DB_NAME', 'nombredelabasededatos');
define('DB_USER', 'nombredeuser');
define('DB_PASSWORD', 'passs');
define('DB_HOST', 'mysql8.000webhost.com');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
$table_prefix = 'tec_';
define ('WPLANG', 'es_ES');
</code>
[final de codigo]
Blog B:
[Inicio del codigo]
<code>
define('DB_NAME', 'nombredelabasededatos');
define('DB_USER', 'nombredeuser');
define('DB_PASSWORD', 'passs);
define('DB_HOST', 'mysql8.000webhost.com');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
$table_prefix = 'biblio_';
define ('WPLANG', 'es_ES');
define('CUSTOM_USER_TABLE', 'tec_users');
define('CUSTOM_USER_META_TABLE', 'tec_usermeta');
</code>
[final del codigo]
segun ustedes con eso bastaria.. pero me aparece eso del screen.
yo creo que es la vercion de wordpress.. que no me permite usar la misma base de datos.. (no se por quee.. pero la rechaza..)
gracias.. funciona perfecto!!
ya lo arregle..
pasa que el hosting que uso.. no permite usar de una cuenta a otra.. una misma base de datos..
por lo tanto tuve que crear subdominios..
MUY BUEN APORTE!!
Hola. ¿Funciona para BuddyPress también? ¿Alguien sabe? Es que quiero tener una instalación de bp principal, con 3 o 4 más "secundarias", ya que se trata de diferentes temáticas cada instalación, pero me interesaría centralizar todos los usuarios y sus perfiles en una sola. Gracias!!
Parece que funciona, pero cuando entro en el segundo blog me dice que: "No tienes suficientes permisos para acceder a esta página"
¿ALGUNA IDEA?
Pues revisar los permisos del usuario, a veces pone los permisos la base de datos a cero
Hola. Yo tengo el mismo problema, loguea y todo, pero al intentar acceder al panel de control me dice que no tengo permisos para ver esa pagina. Mientras que en el "blog 1" puedo ver perfectamente el panel de Administrador.
¿Que podria ser?
Hola. Ya lo pude solucionar.
Busque el archivo wp-includes/capabilities.php en el segundo blog, y modifique la linea "$this->cap_key = $wpdb->prefix . 'capabilities';|" de esta manera "$this->cap_key = 'wp_capabilities';" y ya parece funcionar todo correctamente.
¡Saludos!
Muchas gracias, efectivamente el prefijo "automatizado" es lo que me daba el fallo.
Hay que modificar el fichero de configuración antes de instalar el "blog B"
????????????????? cuando tenga un blog en .org lo hare
Quizás alguna variable haya cambiado desde que crearon el post, ya que a pesar de que logro compartir los usuarios, cuando me logeo en BlogA e intento pasar a BlogB, el usuario no me lo respeta y me dice logearme de nuevo.
Alguna idea? he intentado creo que todo.
Ay algo que ya no va bien, hace tiempo que lo hice y si funcionaba, ahora con la version 3.9.1 ya no funciona aun cambiando lo de «$this->cap_key = ‘wp_capabilities’;».
Necesito ayuda pliss
Me sirvió tu artículo. Pero quisiera saber cómo hacer lo mismo pero con otras tablas. Por ejemplo las de BuddyPress o las de algunos PlugIns de control de SPAM que tengo.
Quiero que los usuarios circulen libremente entre distintos sitios sin tener que registrarse en todos ellos, o que pierdan sus mensajes y amigos dependiendo de dónde están.
Este truco sigue funcionando con WP 4.4?
las tablas user y usermeta de los Blog A & B, interactuan?
Quiero decir que luego de hacer esto, los futuros usuarios creados desde Blog A, pueden loguearse en Blog B? y Viceversa?
Lo que me gustaría es que se interactue los usuarios. Sea donde sea que se registre, pueda usar esos mismos datos de inicio, en el otro blog.
A quien le interese, en la versión 4.5 de Wordpress el cambio hay que hacerlo en «wp-includes/class-wp-roles.php», en las lineas 113 y 151, hay que cambiar:
$wpdb->get_blog_prefix() . ‘user_roles’
por
‘wp_user_roles’
Buenas,
Por casualidad no sabrías el código de la versión 4.9 de wordpress? he buscado el código que indicas pero no lo he encontrado.
Muchas gracias.
He intentado durante semanas dar con la solución y leyendo este artículo al fin lo conseguí. Muchas gracias.
Ahora sólo me falta conseguir que al cambiar de un blog a otro permanezca conectado el usuario.
Pd: Lo realicé teniendo 2 versiones de wordpress distintas. La principal con WP 4.3.5 y la segunda WP 4.6
Buenas,
he realizado los siguientes pasos pero al inciar session al blog2 dice el siguente mensaje:
«Lo siento, no tienes permisos para acceder a esta página.»
he leído en los comentario que se tienen que tocar el código de wp-includes/class-wp-roles.php pero en mi versión de wordpress 4.9.2 no se si es lo mismo.
Muchas gracias por las respuestas.
Estoy igual que tu juan. encontré esto en la búsqueda. Espero te funcione. https://trickspanda.com/wordpress-share-users-login/