Usuario de WordPress Roles y Capacidades le permite controlar lo que otros usuarios pueden o no pueden hacer en su sitio. Puede usarlos para administrar las acciones del usuario, como escribir y editar publicaciones, crear nuevas páginas, moderar comentarios, instalar complementos, agregar nuevos usuarios y mucho más.

Comprender los roles y permisos de los usuarios es esencial para administrar cualquier sitio de WordPress. Por ejemplo, si está creando un sitio para un cliente, no querrá que edite o cambie el tema instalado. De la misma manera, no es prudente permitir que los escritores de un blog de varios autores instalen o eliminen complementos.

Aprender a administrar los roles de usuario de WordPress de manera inteligente lo ayudará a optimizar su flujo de trabajo, mantener su sitio seguro y obtener el máximo control sobre su sitio.

En esta guía extensa, aprenderá sobre los roles de usuario de WordPress, las diversas capacidades que proporciona WordPress, cómo editar roles de usuario existentes, cómo administrar usuarios en múltiples sitios y crear nuevos roles con un nuevo conjunto de capacidades.

¿Emocionado? ¡Vamos a sumergirnos!

¿Cuáles son las funciones y capacidades de los usuarios de WordPress?

Los roles y las capacidades son el pan y la mantequilla de la gestión del acceso de usuarios en WordPress. Para comprender qué roles de usuario hay en WordPress, primero debe saber qué capacidades son.

WordPress define cualquier acción que un usuario pueda realizar como Capacidad. Aquí hay algunos ejemplos de capacidades disponibles en WordPress y cómo se hace referencia a ellas en su código:

La mayoría de las capacidades se explican por sí mismas por su nombre. WordPress tiene más de 70 capacidades codificadas integradas en su núcleo.

UN Papel es una colección de capacidades que puede asignar a un usuario. Cada usuario de WordPress necesita tener un rol asignado. Un usuario solo puede realizar las acciones que le otorga su rol.

Infografía que muestra cómo se definen los roles de WordPress en WordPress con capacidades

Un ‘Rol’ es una colección de ‘Capacidades’

En el gráfico anterior, cualquier usuario con Rol 1 pueden leer publicaciones, pero no pueden editarlas. Usuarios con Rol 2 pueden leer y editar publicaciones, pero no pueden publicar publicaciones. Cualquier usuario con Rol 3 pueden leer, editar y publicar publicaciones, pero no pueden eliminar publicaciones, a diferencia de Rol 4 usuarios que pueden eliminar publicaciones.

Roles de usuario de WordPress

El panel ‘Agregar nuevo usuario’ en el panel de WordPress

WordPress usa muchas de sus capacidades nativas para definir sus roles de usuario predeterminados. Por ejemplo, otorga a los administradores y editores la publish_pages capacidad, pero no los asigna a suscriptores y contribuyentes.

El panel 'Usuarios' en el panel de administración de WordPress

El panel ‘Usuarios’ en el panel de WordPress

Como mínimo, cada usuario de WordPress tiene un nombre de usuario, una contraseña, una dirección de correo electrónico y un rol.

phpMyAdmin que muestra dónde la base de datos WP almacena las capacidades

phpMyAdmin que muestra dónde la base de datos WP almacena las capacidades

WordPress almacena todas sus capacidades basadas en roles en su base de datos en el wp_options tabla debajo del serializado wp_user_roles opción. los WP_Roles La clase principal se usa para definir cómo almacenar roles y capacidades en la base de datos.

La clase WP_Roles

WordPress implementa roles y capacidades con la API de roles de usuario, la mayoría de los cuales se basa en el WP_Roles clase básica. Puede encontrar su fuente en el wp-includes/class-wp-roles.php expediente.

Si echa un vistazo a la base de datos, encontrará que los roles están dentro de una matriz con sus nombres de rol definidos. los rolename La clave almacena el nombre del rol de usuario como un valor de la name clave y todas las capacidades en una matriz separada como un valor de la capability llave.

array (
     'rolename' => array (
         'name' => 'rolename',
         'capabilities' => array()
     )
)

los La clase WP_Roles define muchos métodos. Puede llamarlos en cualquier parte de su código para interactuar con la API de roles de usuario.

Nota: WordPress incluye otra clase principal llamada WP_Role (tenga en cuenta el singular ‘Rol’). Se utiliza para ampliar la API de roles de usuario.

Cuando usted anular la serialización del valor clave de wp_user_roles, se verá algo como esto:

array (
  'administrator' => 
  array (
    'name' => 'Administrator',
    'capabilities' => 
    array (
      'switch_themes' => true,
      'edit_themes' => true,
      'activate_plugins' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'editor' => 
  array (
    'name' => 'Editor',
    'capabilities' => 
    array (
      'moderate_comments' => true,
      'manage_categories' => true,
      'manage_links' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'author' => 
  array (
    'name' => 'Author',
    'capabilities' => 
    array (
      'upload_files' => true,
      'edit_posts' => true,
      'edit_published_posts' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'contributor' => 
  array (
    'name' => 'Contributor',
    'capabilities' => 
    array (
      'edit_posts' => true,
      'read' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'subscriber' => 
  array (
    'name' => 'Subscriber',
    'capabilities' => 
    array (
      'read' => true,
      'level_0' => true,
    ),
  ),
)

Es una matriz multidimensional con cada rol asignado un nombre de rol y se le otorga un conjunto de capacidades. Del mismo modo, WordPress almacena las capacidades basadas en el usuario en el wp_usermeta mesa con el wp_capabilities nombre de la meta clave.

Nota: los wp_ El prefijo puede ser diferente en su configuración. Depende del valor de la $table_prefix variable global en su sitio wp-config.php expediente.

Cuadro de funciones y capacidades

Imagen de la tabla 'Roles vs Capacidades' de WordPress Codex

La tabla ‘Roles vs Capacidades’ en WordPress Codex

WordPress Codex incluye un sencillo Capacidad frente a tabla de roles, aunque no es tan intuitivo. Resume todas las acciones que los roles de usuario predeterminados pueden realizar en configuraciones de WordPress de un solo sitio y de varios sitios. Hay una pausa después de un número determinado de capacidades para facilitarle la distinción entre capacidades de alto nivel y de bajo nivel.

Para una mejor representación de todos los roles y capacidades de WordPress de un vistazo, puede ver esta excelente mesa de Exygy.

Capacidades relacionadas con los bloques reutilizables de Gutenberg

El editor de bloques Gutenberg de WordPress introdujo una característica sorprendente llamada Bloques reutilizables. Le permite guardar un bloque completo (o varios bloques) como plantilla y usarlo en cualquier otro lugar de su sitio.

Agregar 'Bloques reutilizables' en el nuevo editor de bloques Gutenberg de WordPress

Agregar ‘Bloques reutilizables’ en el nuevo editor de bloques Gutenberg de WordPress

En consecuencia, WordPress también introdujo las siguientes nuevas capacidades relacionadas con los bloques reutilizables:

  • Crea bloques reutilizables
  • Editar bloques reutilizables
  • Leer bloques reutilizables
  • Eliminar bloques reutilizables

Las capacidades enumeradas anteriormente funcionan de manera similar a las capacidades relacionadas con publicaciones. Un administrador o un editor tiene acceso a todas las capacidades relacionadas con los bloques reutilizables, mientras que un autor solo puede editar o eliminar los bloques reutilizables creados por ellos. Los colaboradores solo pueden leer bloques reutilizables.

Capacidad especial: carga sin filtrar

Carga sin filtrar es una capacidad especial que no está asignada a ningún rol de usuario de forma predeterminada, incluidos los de administrador o superadministrador. Permite a un usuario cargar archivos con cualquier extensión (por ejemplo, SVG o PSD), no solo las incluido en la lista blanca por WordPress.

Nota: Puede obtener una lista de tipos de mime y extensiones de archivo compatibles con WordPress utilizando el Función wp_get_mime_types ().

Para habilitar esta capacidad, debe agregar el siguiente fragmento de código a su wp-config.php expediente. Defina la constante antes de la línea que le pide que deje de editar.

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Una vez que haya definido esta constante, puede otorgarle a cualquier usuario un rol en un sitio único de WordPress. Carga sin filtrar capacidad. Sin embargo, en una instalación de varios sitios, solo un superadministrador puede tener esta capacidad.

Por ejemplo, si desea asignar el unfiltered_upload capacidad a un editor, puede agregar el siguiente código en cualquier lugar de su código de WordPress (idealmente, ejecutarlo solo en la activación del tema / complemento):

<?php

  $role = get_role( 'editor' );
  $role->add_cap( 'unfiltered_upload' );

?>

Discutiremos más sobre cómo agregar o personalizar las capacidades de todos los roles de usuario o usuarios específicos más adelante en esta publicación.

Capacidades primitivas frente a metacapacidades

Existen principalmente dos tipos de capacidades en WordPress:

  • Capacidades primitivas: Estas capacidades se otorgan a roles particulares. Los usuarios con estos roles heredan las capacidades primitivas automáticamente.
  • Meta capacidades: Estas capacidades no se otorgan a ningún rol de forma predeterminada. WordPress busca un determinado objeto en su código y base de datos, como publicación, página, usuario o cualquier taxonomía, y si la lógica funciona, “mapea” una metacapacidad a una o más capacidades primitivas.

Por ejemplo, WordPress otorga a los Autores la edit_posts capacidad para sus propias publicaciones para que puedan editarlas. Sin embargo, esta capacidad no les permite editar las publicaciones de otros usuarios. Aquí es donde ayudan las metacapacidades.

WordPress usa el map_meta_cap () función para devolver una matriz de capacidades primitivas vinculadas a un objeto específico. Luego los compara con el objeto de usuario para verificar si el usuario puede editar la publicación.

Algunos otros ejemplos de metacapacidades son read_post, delete_post, remove_usery read_post. Los analizaremos en profundidad en la sección de capacidades personalizadas a continuación.

💡 Comprender las funciones y capacidades de los usuarios de WordPress = un sitio más seguro + tranquilidad para usted y sus clientes. Más información 👇Haz clic para tuitear

Los seis roles de usuario predeterminados de WordPress

WordPress incluye seis roles de usuario predefinidos. El primer usuario de una instalación de WordPress obtiene la Administrador rol por defecto (o el Super administrador rol con instalaciones de WordPress Multisite).

Dado que WordPress comenzó como una plataforma de blogs antes de convertirse en un CMS completo, define la mayoría de sus roles de usuario para publicar contenido en la web. Sus otros roles de usuario predefinidos son …