¿Cómo restringiríamos el acceso al área de administración de WP a todos los usuarios, excepto a los administradores?
Los usuarios de nuestro sitio tienen sus propias páginas de perfil que realizan todas las funciones que necesitan.
Por lo tanto, el administrador debe estar fuera del alcance de todos, excepto los administradores.
¿Como hacer eso?
Respuestas:
Podemos conectarnos a la
admin_init
acción y verificar si el usuario es un administrador utilizando lacurrent_user_can()
función para ver si el usuario actualmanage_options
puede hacerlo, algo que solo un administrador puede hacer.Este código, cuando se pega en el archivo functions.php, mostrará un mensaje cuando un usuario que no sea administrador intente acceder al tablero:
Si lo prefiere, puede proporcionar una mejor experiencia de usuario redirigiendo al usuario a la página de inicio:
Si desea redirigir al usuario a su página de perfil, reemplácelo
home_url()
en el código anterior con el enlace.fuente
manage_options
capacidad es la forma aceptada de verificar un usuario administrador Incluso Mark Jaquith lo dicemanage_options
es algo que solo los "administradores" pueden hacer y que no es cierto,manage_options
es una capacidad y puede eliminarse de la función de administrador o asignarse a otras funciones de usuario. Lo importante es saber lo que quiere hacer y elegir la mejor manera. Mira mi respuesta, te explico esto.manage_options
conmanage_network
. Este último deshabilitaría el tablero también para los "administradores del sitio" predeterminados, pero dejaría acceso disponible para los Super Administradores (administradores de red).Podrías escribir un complemento y conectarlo
admin_init
.El códice en realidad da un ejemplo con la función que está buscando.
http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init#Example:_Access_control
fuente
Algunas de las respuestas dadas pueden estar bien en la mayoría de las situaciones, pero creo que ninguna de ellas garantiza hacer exactamente lo que se les pide porque ninguna de las respuestas verifica los roles de los usuarios, comprueban que las capacidades y capacidades pueden asignarse y eliminarse de los roles. Entonces, para dar una respuesta exacta, se deben verificar los roles de los usuarios, no las capacidades:
Si desea verificar que el usuario tenga la capacidad de "administrar_opciones", puede hacerlo. De hecho, es la mejor opción en la mayoría de los casos. Aunque esta capacidad está asociada de forma predeterminada a los usuarios administradores, la capacidad se puede eliminar de la función de administrador o se puede asignar a otras funciones de usuario. Es por eso que, en la mayoría de los casos, verificar lo que el usuario puede o no hacer es mejor que verificar la función del usuario. Por lo tanto, en la mayoría de los casos, verificar las capacidades debe ser la forma elegida, pero debe tener este concepto claro y elegir la mejor opción para su situación y propósito:
fuente
Pruebe el complemento Administrar .
Puedes bloquear las cosas bastante bien con eso.
También puede intentar configurar el acceso a través del archivo htaccess
fuente
fuente
'administrator'
No es una capacidad. Funciona solo para mantener la compatibilidad con versiones anteriores. Verifique'update_core'
u otras capacidades administrativas.Pon estas líneas en tu
functions.php
fuente
Pruebe esto, nunca a través de errores frente a un usuario final. Contra un buen UX. Este código los redirige a Inicio.
fuente
Me gustaría utilizar WP frontend y configurarlo para todo el mundo esperan que los administradores.
fuente