Explorá

Paso a paso / 5 min de lectura

WordPress Multisite: Cómo agregar un usuario a todos los sitios

A laptop with a colorful keyboard in a dim-lit room

Crear usuarios con roles adecuados es una de las partes más importantes de la gestión de una red multisite. De vez en cuando, puede que necesites agregar un usuario a todos los sitios en la red multisite de WordPress.

Cuando eso sucede, tenés 2 opciones: agregar manualmente el mismo usuario a cada sitio en la red o usar una función personalizada para automatizar el proceso.

Veamos cómo hacer ambos en esta guía paso a paso.

Cómo Agregar un Usuario de WordPress Multisite a Todos los Sitios

Método N°1: Agregar un Usuario Manualmente a Todos los Sitios

El primer método para agregar un usuario a todos los sitios en una red multisite es agregando manualmente el usuario a cada sitio.

En el panel de control, dirigite a Mis Sitios > Administrador de la Red > Sitios.

el menú Mis Sitios en el admin de WordPress

Una vez en la pantalla de Sitios, hacé clic en el subdominio al que planeás agregar al usuario.

Resaltando un sitio en una red multisite, en el menú "Sitios" de WordPress

En la pantalla de Editar Sitio, hacé clic en la pestaña de Usuarios.

Resaltando la pestaña "Usuarios" en el menú "Editar Sitio" de WordPress

Ahora, podés agregar un usuario existente o crear uno nuevo y asignarlo a este sitio en particular.

En la sección de Agregar Usuario Existente, tenés que escribir el nombre de usuario, elegir el rol del usuario, y hacer clic en Agregar Usuario.

El menú "Agregar Usuario Existente" en WordPress

Si querés crear un nuevo usuario y agregarlo al sitio, desplazate hasta la sección Agregar Nuevo Usuario. Creá el nombre de usuario, asigná una dirección de correo electrónico, dale un rol y hacé clic en Agregar Nuevo Usuario.

El menú "Agregar Nuevo Usuario" en WordPress

Es necesario repetir este proceso en cada sitio de la red si querés agregar un usuario a todos los sitios.

Método N°2: Agregar un Administrador a Todos los Sitios con una Función

Agregar usuarios manualmente a cada sitio puede ser viable si manejás unos pocos sitios, pero cuando administrás una red grande, el tiempo que lleva agregar nuevos usuarios se vuelve significativo. Incluso en redes más pequeñas, ir a cada sitio para agregar múltiples usuarios se vuelve tedioso rápidamente.

Si tenés algunos conocimientos de programación, podés beneficiarte agregando una función personalizada que te permita ingresar una dirección de correo electrónico y convertirla en un usuario en cada sitio de la red.

Para agregar usuarios administradores a nivel programático a todos los sitios de la red, añadí la siguiente función, creada por el desarrollador Kevin Leary, al archivo functions.php.

/**
 * WPMU Agregar Usuario a Todos los Sitios
 *
 * Agregar un usuario administrador a todos los sitios en una red multisite de WordPress
 */
function kevinlearynet_wpmu_add_user_all_sites() {
  $email = isset( $_GET['wpmu_admin_sync'] ) ? esc_attr( $_GET['wpmu_admin_sync'] ) : null;
  if ( ! $email ) {
    return;
  }

  $user = get_user_by( 'email', $email );
  if ( $user === false ) {
    wp_die( "No existe un usuario en esta red con el email $email." );
  }

  $role = isset( $user->roles[0] ) ? $user->roles[0] : 'administrator';

  $sites = get_sites( [
    'limit' => 0,
    'public' => true,
    'spam' => false,
    'deleted' => false,
    'archived' => false,
    'mature' => false,
  ] );

  $output = [];
  foreach ( $sites as $site ) {
    $site_id = get_object_vars( $site )['blog_id'];
    $site_name = get_blog_details( $site_id )->blogname;
    $add_user = add_user_to_blog( $site_id, $user->ID, $role );
    $note = "usuario $email al sitio $site_name como un $role.";
    $output[] = $add_user ? "Se agregó exitosamente $note" : "Falló al agregar $note";
  }
  $html = wpautop( implode( PHP_EOL, $output ) );
  wp_die( $html );
}
add_action( 'after_setup_theme', 'kevinlearynet_wpmu_add_user_all_sites' );

¿Cómo Usar la Función?

Para usar la función, empezá visitando tu red multisite. Agregá el siguiente parámetro de consulta a la URL de tu red:

?wpmu_admin_sync=[nombre_de_usuario_aquí]@[nombre-de-dominio_aquí].com

Acá tenés un ejemplo: 

misitio.com/?wpmu_admin_sync=adminuser@misitio.com

Una vez que agregaste el parámetro de consulta con la dirección de correo, presioná Enter. El script agregará un nuevo usuario basado en la dirección de correo a cada sitio en la red.

La interfaz de WordPress mostrando que agregaste exitosamente el usuario administrador new_network_admin@wcanvas.com usando una función personalizada

Después de ejecutar la función, si vas a Sitios > Todos los Sitios y hacés clic en cualquiera de los sitios, al entrar en la pestaña de Usuarios, deberías ver el usuario administrador recién agregado.

Interfaz de gestión de usuarios de WordPress, mostrando un usuario recién agregado

Tené en cuenta que la dirección de correo electrónico que agregás debe estar ya asociada con un usuario existente. Si agregás una dirección de correo que no está asociada con un usuario existente, verás este mensaje de error.

La interfaz de WordPress mostrando que fallaste al agregar un nuevo usuario administrador

¿Cómo Funciona la Función?

Esta función agrega un usuario por correo a todos los sitios en la red. Crea una lista de todos los sitios, encuentra un usuario existente por correo y lo agrega a cada sitio uno por uno.

La función agrega un usuario con el rol de administrador por defecto, por lo que deberías modificarla para agregar cualquier otro tipo de usuario.

Reflexiones Finales

La gestión de usuarios es muy importante en las redes multisite. Ocasionalmente, puede ser necesario agregar un usuario a cada sitio de la red, pero WordPress no proporciona una función nativa para agregar automáticamente el mismo usuario a todos los sitios.

Tus alternativas son agregar manualmente el mismo usuario a cada sitio o usar una función que automatice el proceso.

Este artículo proporcionó una guía paso a paso para hacer ambos, así que ahora sabés qué hacer la próxima vez que tengas que agregar un usuario a cada sitio en tu red.

Si encontraste útil este post, leé nuestro blog y recursos para obtener más información y guías sobre WordPress.