Descubre en este tutorial cómo limitar los bloques disponibles en el editor de WordPress dependiendo del rol de usuario.
El editor de bloques tiene cada vez más bloques, esto está genial ya que ofrece más versatilidad a la hora de crear contenido, pero también puede tener «demasiado donde elegir» para algunos usuarios.
Existe la opción de ocultar los bloques que no quieres que se muestren en el editor, pinchando en los tres puntos de arriba a la derecha y seleccionando: Herramientas > Gestor de bloques.
Pero esto no evita que los bloques se carguen y que estén accesibles desde el gestor para otros usuarios.
Con la llegada del editor de bloques y el editor del sitio (Site Editing) a WordPress, una de las preocupaciones de diseñadores y desarrolladores es que el usuario final tiene «demasiado» control sobre el diseño y puede «cargarse» el trabajo del profesional.
En un tutorial anterior te expliqué cómo desregistrar bloques nativos del editor de WordPress pero si lo que quieres es tener un control más granular, dependiendo del rol de usuario, te recomiendo seguir la estrategia que te voy a explicar a continuación.
Limitar los bloques que se muestran en el editor de WordPress dependiendo el rol de usuario
Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 2055 snippets de esta web,
identifícate o suscríbete aquí.
En este código utilizas el filtro allowed_block_types_all
en conjunción con la función current_user_can
para que solo se muestren unos determinados bloques a los usuarios que no pueden publicar páginas, es decir, con rol de autor (o similar).
Puedes jugar con las capacidades del rol de usuario para obtener el resultado que desees. Por ejemplo, si quieres limitar los bloques a todos los usuarios que no sean administradores puedes usar el siguiente código:
Para ver este código y los otros 2055 snippets de esta web,
identifícate o suscríbete aquí.
En ambos casos, los bloques que mantienes accesibles son:
-
'core/heading'
: Bloque de encabezado -
'core/image'
: Bloque de imagen -
'core/list'
: Bloque de lista -
'core/paragraph'
: Bloque de párrafo -
'core/columns'
: Bloque de columnas -
'core/buttons'
: Bloque de botones
Pero la idea es que lo ajustes a lo que te interese.
Aquí tienes el listado con todos los bloques nativos de WordPress, categorizados:
Texto
- Párrafo (
core/paragraph
) - Encabezado (
core/heading
) - Lista (
core/list
) - Cita (
core/quote
) - Código (
core/code
) - Preformateado (
core/preformatted
) - Cita en bloque (
core/pullquote
) - Tabla (
core/table
) - Verso (
core/verse
)
Diseño
- Columnas (
core/columns
) - Grupo (
core/group
) - Más (
core/more
) - Salto de página (
core/nextpage
) - Separador (
core/separator
) - Espaciador (
core/spacer
) - Botones (
core/buttons
) - Columnas de texto (Obsoleto)
Widgets
- Código corto (
core/shortcode
) - Archivos (
core/archives
) - Calendario (
core/calendar
) - Categorías (
core/categories
) - HTML personalizado (
core/html
) - Últimos comentarios (
core/latest-comments
) - Últimas entradas (
core/latest-posts
) - RSS (
core/rss
) - Buscar (
core/search
) - Iconos sociales (
core/social-links
) - Nube de etiquetas (
core/tag-cloud
)
Incrustados
- Twitter (
core-embed/twitter
) - YouTube (
core-embed/youtube
) - Facebook (
core-embed/facebook
) - Instagram (
core-embed/instagram
) - WordPress (
core-embed/wordpress
) - SoundCloud (
core-embed/soundcloud
) - Spotify (
core-embed/spotify
) - Flickr (
core-embed/flickr
) - Vimeo (
core-embed/vimeo
) - Animoto (
core-embed/animoto
) - Cloudup (
core-embed/cloudup
) - Crowdsignal (
core-embed/crowdsignal
) - Dailymotion (
core-embed/dailymotion
) - Hulu (
core-embed/hulu
) - Imgur (
core-embed/imgur
) - Issuu (
core-embed/issuu
) - Kickstarter (
core-embed/kickstarter
) - Meetup.com (
core-embed/meetup-com
) - Mixcloud (
core-embed/mixcloud
) - Reddit (
core-embed/reddit
) - ReverbNation (
core-embed/reverbnation
) - Screencast (
core-embed/screencast
) - Scribd (
core-embed/scribd
) - Slideshare (
core-embed/slideshare
) - SmugMug (
core-embed/smugmug
) - Speaker Deck (
core-embed/speaker-deck
) - TED (
core-embed/ted
) - Tumblr (
core-embed/tumblr
) - Twitch (
core-embed/twitch
) - Videopress (
core-embed/videopress
) - WordPress.tv (
core-embed/wordpress-tv
)
Medios
- Imagen (
core/image
) - Galería (
core/gallery
) - Audio (
core/audio
) - Portada (
core/cover
) - Archivo (
core/file
) - Medios y texto (
core/media-text
) - Video (
core/video
)
Tema
- Navegación (
core/navigation
) - Enlace Personalizado (
core/navigation-link
) - Enlace Inicio (
core/home-link
) - Submenú (
core/navigation-submenu
) - Logo del Sitio (
core/site-logo
) - Título del Sitio (
core/site-title
) - Lema del Sitio (
core/site-tagline
) - Bucle de Consulta (
core/query
) - Plantilla de Entrada (
core/post-template
) - Título de la Entrada (
core/post-title
) - Extracto de la Entrada (
core/post-excerpt
) - Imagen Destacada de la Entrada (
core/post-featured-image
) - Contenido de la Entrada (
core/post-content
) - Autor de la Entrada (
core/post-author
) - Biografía del Autor de la Entrada (
core/post-author-biography
) - Nombre del Autor de la Entrada (
core/post-author-name
) - Fecha de la Entrada (
core/post-date
) - Fecha de Modificación de la Entrada (
core/post-modified-date
) - Categorías de la Entrada (
core/post-terms
contaxonomy:category
) - Etiquetas de la Entrada (
core/post-terms
contaxonomy:post_tag
) - Paginación (
core/query-pagination
) - Lista de Entradas (
core/posts-list
) - Avatar (
core/avatar
) - Enlace de Navegación de la Entrada (
core/post-navigation-link
) - Siguiente Entrada (
core/post-navigation-link
condirection:next
) - Entrada Anterior (
core/post-navigation-link
condirection:previous
) - Leer Más (
core/read-more
) - Comentarios (
core/comments
) - Título de Comentarios (
core/comments-title
) - Plantilla de Comentario (
core/comment-template
) - Nombre del Autor del Comentario (
core/comment-author-name
) - Fecha del Comentario (
core/comment-date
) - Contenido del Comentario (
core/comment-content
) - Enlace de Respuesta del Comentario (
core/comment-reply-link
) - Enlace de Edición del Comentario (
core/comment-edit-link
) - Paginación de Comentarios (
core/comment-pagination
) - Formulario de Comentarios de la Entrada (
core/post-comments-form
) - Comentario de la Entrada (obsoleto) (
core/post-comment
) - Inicio/Cierre de Sesión (
core/loginout
) - Descripción del Término (
core/term-description
) - Título del Archivo (
core/archive-title
) - Título de Resultados de Búsqueda (
core/search-results-title
) - Parte de la Plantilla (
core/template-part
)
Puedes ver la lista actualizada en la documentación oficial.
Conclusión
Ahora ya sabes cómo limitar los bloques que se muestran en el editor de bloques dependiendo del rol de usuario.
Esto te permite dar acceso clientes o colaboradores para que puedan modificar el contenido pero limitando hasta donde tú quieras.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉