Eliminar opciones del menú del backend de WordPress según el rol del usuario.
Hace unos días un cliente nos pidió que sus usuarios de un rol específico sólo pudieran acceder a ciertas cosas. Es decir, o crear un nuevo rol con capacidades específicas, o limitar uno de los roles de WordPress. Esto normalmente se hace de manera sencilla con plugins que editan las “capabilities” de los roles de WordPress, como este. PERO tienen un fallo. Esos plugins restringen “capabilities” de Wordress. Hay recursos que comparten la misma. Así que a veces quieres dar acceso a una opción pero limitar otra, y no es posible porque ambas usan la misma. Una opción que soluciona esto es quitar esas opciones del menú de administrador para esos roles. Cómo eliminar opciones del menu del backend de WordPress según el rol de ususario. Para ello vamos a usar un código que, como siempre, podemos o poner en el archivo functions.php de nuestro tema hijo o en un Snippet (sólo para el backend en este caso). Es el siguiente: Las claves están en1) La línea de current_user_can( ‘editor’ ). Como véis aquí hemos puesto un rol, pero también podemos poner una capability para afectar a más de un rol. En Internet podéis ver muchos ejemplos.2) La parte de remove_menu_page( ‘urlquequierasquitar‘ ). Estas son las opciones que tenemos que eliminar. Tienes que poner entre paréntesis la url o parte de la url a la que apunte el menú que quieres quitar. Juega con las opciones hasta conseguir el resultado optimo. Por ejemplo si pasas el ratón por encima de Apariencia y copias el enlace (botón derecho, copiar dirección del enlace) es algo como tudominio/wp-admin/themes.php Si quieres eliminarlo pon en el código superior la línea:remove_menu_page( ‘themes.php’ ) . Os dejamos algún ejemplo: Como veis este código admite eliminar todas las opciones que quieras, y también, con más if, usarlo para diferentes roles. Espero que os sea útil.