¡Hola!:
Necesito dar acceso a ciertas páginas a una person que redacta los contenidos. Pero no quiero que por descuido toque algo que pueda modificar el diseño de esas páginas. Así que he pensado que igual existe algún plugin que puede gestionar específicamente esto. He probado con varios, pero no van tan lejos.
Pienso que el plugin debería hacer lo siguiente: crear un rol nuevo, asignar capacidad para pueda editar páginas, posts o CPT específicos, ocultar para ese rol todo lo que en el editor de WordPress está relacionadocon con la edición de bloques y la configuración de la página.
¿Podéis ayudarmen?
Gracias.
Un saludo.
Contenido solo visible a usuarios registrados
Hola Miguel.
No se si exactamente es esto lo que buscas pero puedes desactivar el editor Gutenberg según el rol de usuario.
Pongamos que el usuario que va a redactar contenido tenga el rol de editor y solo quieres que trabaje con el editor clasico de WordPress
.- Instala el siguiente plugin:
-> https://es.wordpress.org/plugins/code-snippets/
El plugin te permite añadir código sin tener que editar los archivos.
Una vez instalado:
.- Accede a Fragmentos de código -> Añadir nuevo
.- Añade un título para tenerlo identificado y añade el siguiente código:
// Desactivar el editor de Gutenberg para roles de usuario específicos
function disable_gutenberg_for_specific_roles() {
// Comprobar el rol del usuario actual
$user = wp_get_current_user();
$allowed_roles = array( 'editor' ); // Roles que no pueden usar el editor de Gutenberg
if ( array_intersect( $allowed_roles, $user->roles ) ) {
// Permitir el uso del editor de Gutenberg para roles permitidos
return false;
} else {
// Desactivar el editor de Gutenberg para otros roles
return true;
}
}
add_filter( 'use_block_editor_for_post_type', 'disable_gutenberg_for_specific_roles', 10, 2 );
Esto desactiva el editor Gutenberg para el rol Editor y utiliza el editor clasico de WordPress
Ahora supongamos que no quieres que el usuario editor tenga acceso a páginas, comentarios y herramientas:
add_action( 'admin_menu', 'restrict_menu_items_for_editor' );
function restrict_menu_items_for_editor() {
global $menu;
global $current_user;
// Verificar si el usuario actual es un editor
if ( ! current_user_can( 'editor' ) ) {
return;
}
// Desactivar la opción de Comentarios para el rol de Editor
remove_menu_page( 'edit-comments.php' );
// Desactivar la opción de Páginas para el rol de Editor
remove_menu_page( 'edit.php?post_type=page' );
// Desactivar la opción de Herramientas para el rol de Editor
remove_menu_page( 'tools.php' );
}
Con esto el usuario con el rol editor solo podrá acceder a entradas y medios.
Y ahora supón que quieres que el usuario con el Rol Editor solo pueda ver sus entradas:
add_action( 'pre_get_posts', 'restrict_posts_for_editor' );
function restrict_posts_for_editor( $query ) {
global $pagenow;
global $current_user;
// Verificar si el usuario actual es un editor
if ( ! current_user_can( 'editor' ) ) {
return;
}
// Verificar si estamos en la página de administración de entradas y en la consulta principal
if ( $pagenow == 'edit.php' && $query->is_main_query() ) {
// Obtener el ID del usuario actual
$user_id = $current_user->ID;
// Modificar la consulta para mostrar solo las entradas del usuario actual
$query->set( 'author', $user_id );
}
}
Con esto el Usuario con el rol Editor solo podrá ver las entradas que están creadas con ese rol, las demás están ocultas.
Espero que alguna o todas las opciones sirvan para lo que estas buscando, de no ser así por favor indícalo para que podamos seguir ayudándote
Un Saludo
Hola, Pepe:
Gracias por tu ayuda. A ver, esas opciones ya las había contemplado. Realmente, no quiero deshabilitar por completo el editor de bloques. Mi idea es conservar una parte para que a la persona le resulte fácil saber en qué parte está y trabaje teniendo las imágenes de referencia. Sería algo así como un editor de bloques algo personalizado. En la captura te enseño lo que me gustaría quitar (todo lo que está enmarcado en rojo).
Dejadle al redactor lo mínimo para que pueda entrar, escribir, salir, guardar y poco más. No sé si me explico ni si eso tiene sentido o se puede.
Un saludo,
Miguel
Hola Miguel,
Lo que buscas es algo muy personalizado, ten en cuenta que si limitas eso solo podrán escribir, esto sería algo hecho a medida para tu sitio, en este caso desde foro no ofrecemos códigos a medidas, pero has experimentado con el rol de colaborador? este puede hacer cambios solo en entradas y para publicarlas deben ser aprobadas por ti.
También tienes otras alternativas, si te quieres asegurar que no realicen algún cambio que dañe tu sitio puedes usar plugins como:
https://wordpress.org/plugins/wp-security-audit-log/
Este te da un log de cambios hecho por cada usuario de tal forma que si hacen algo pueden revertirlo. Si vas por el usuario de colaborador y necesitas que creen también páginas puedes hacerlo editando su usuario una alternativa es el plugin de:
https://wordpress.org/plugins/wpfront-user-role-editor/
Ingresas al rol de colaborador y activas esta opción en la parte de páginas:
Verifica y no comentas.
Un saludo 🖐️
Hola, Argenis:
Como dije al principio, preguntaba por si sabíais de algún plugin que hiciera eso. Sé que este foro no está para ofrecer códigos a medida. 😉
Probaré con las opciones que comentas. Gracias. 🙂
Un saludo,
Miguel
Hola Miguel,
Perfecto, ya nos comentas como ha ido todo.
Un saludo 🖐️