Dos sitios WordPress con los mismos usuarios


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?

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(6 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

26 comentarios en “Dos sitios WordPress con los mismos usuarios”

  1. Pingback: Bitacoras.com

  2. Pingback: Compartiendo usuarios en wordpress « tomando notas

  3. 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

  4. Pingback: Rubén Ortiz » Wordpress - No tienes autorizacion para acceder a esta pagina

  5. sebastian gaspari

    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..)

  6. sebastian gaspari

    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!!

  7. 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!!

  8. 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?

    1. 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?

    2. 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!

  9. 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.

  10. 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

  11. Mauro Hernán Asselborn

    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.

  12. 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.

  13. 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’

    1. 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.

  14. Pilar Vial Blanco

    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

  15. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido