• Saltar a la navegación principal
  • Saltar al contenido principal

Dani Sánchez - Gestionatuweb

Desarrollador web freelance

  • Quién soy
  • ¿Eres agencia?
  • WordPress
    • Mantenimiento WordPress
    • Desarrollo WordPress
    • Soporte técnico WordPress
  • Cursos
  • Blog
  • Portfolio
  • Solicita Presupuesto

Impedir el acceso al Dashboard (wp-admin) a usuarios no administradores

El 16 de enero de 2018 por dani 8 comentarios

Aviso: Esta entrada tiene 2 o más años, es posible que el método difiera ligeramente, las capturas de pantalla no se correspondan con la versión actual o que la herramienta/complemento ya no esté disponible.
Advertencia: Esta entrada contiene códigos o snippets que podrían no funcionar correctamente en tu instalación de WordPress, o podrían ser incompatibles con tu theme o plugins activos. Úsalos bajo tu responsabilidad, preferiblemente en un entorno de desarrollo y haz siempre copias de tus archivos antes de modificarlos.

Si deseamos tener una zona personalizada para usuarios colaboradores de nuestro sitio web, seguramente no queramos que tengan acceso al panel de control o Dashboard de WordPress aunque este esté limitado por el rol establecido (suscriptor, colaborador, autor…).

Queremos tener un sitio web homogéneo y que nuestros usuarios no abandonen el Frontend para añadir sus contenidos.

Ya vimos en el anterior post, cómo ocultar la barra de admin a usuarios no administradores, pero todavía seguirían teniendo acceso si teclean directamente la URL del Dashboard (http://www.tudominio/wp-admin).

Añadiendo este código al archivo functions.php de nuestro theme principal, impediremos que, aún tecleando la URL, se pueda acceder al Dashboard de WordPress si no eres usuario Administrador:

//Restringir panel admin solo a administradores
function restrict_admin_area_by_rol(){
  if (!current_user_can('manage_options') && (!defined('DOING_AJAX') || ! DOING_AJAX )){
    wp_redirect(site_url());
    exit;
  }
}
add_action('admin_init', 'restrict_admin_area_by_rol', 1);

Como vemos en el código, definimos que si el usuario en curso (current user) no posee opciones administrativas (! es igual a NOT, o negación), será redirigido a la página principal del sitio web.

Debemos tener en cuenta que esta función impide que el usuario conecte con cualquier archivo dentro del directorio wp-admin, pero a veces es necesario acceder a estos archivos desde el front-end, por ejemplo, para peticiones AJAX, ya que el archivo que carga las funciones AJAX en WordPress (admin-ajax.php) se encuentra precisamente dentro de /wp-admin. Para ello añadimos la siguiente condición && (!defined(‘DOING_AJAX’) || ! DOING_AJAX )), para excluirla de la redirección.

En el siguiente Post veremos cómo permitir el acceso a una página según el rol del usuario.

Archivado en: Publicaciones, Tutoriales, WordPress Etiquetado como: colaboradores, desarrollo web, php, programación web, publicaciones, tutoriales, woocommerce, wp-admin

Interacciones con los lectores

Comentarios

  1. vero dice

    4 de febrero de 2022 a las 21:24

    Hola, despues que un programador trabajo en mi pagina, me registro, accedo al dashboard, pero una vez que visualizo la web no veo mas la barra de admin en el front end. Podrias ayudarme?

    Responder
  2. fernando dice

    11 de septiembre de 2021 a las 16:36

    Hola hermano! Me funciono perfecto!! Te agradezco por compartir tu saber!! Un Saludo y Abrazo desde Argentina

    Responder
  3. alex dice

    4 de abril de 2021 a las 00:28

    Muy bueno, gracias

    Responder
  4. nayroby dice

    23 de marzo de 2021 a las 16:41

    Hola me sirvió mucho el código pero yo tenia una pregunta yo necesito darle permiso al administrador y al líder de grupo para que accedan al escritorio, que pasa que el administrador tienen todos los permisos y el líder de grupo solo puede crear cursos son los unicos que deberian poder entrar en el escritorio, como podría yo incluirlo en esta función ?

    Responder
  5. Hugo Arturo dice

    6 de marzo de 2021 a las 01:09

    Buen dia amigo me encanto tu solucion pero me gustaria me ayudaras con algo mas…. si tengo dos administradores y solo quiero que uno tenga acceso al wp-admin es posible?

    Responder
    • dani dice

      6 de marzo de 2021 a las 13:45

      ¿Y para qué quieres un administrador que no pueda acceder al admin? Para eso asígnale un rol con menos privilegios.

      Responder
  6. Mariana dice

    4 de enero de 2021 a las 07:17

    Me estropeó todo el estilo del tema y no funcionó…

    Responder
    • dani dice

      4 de enero de 2021 a las 20:01

      Hola, este código no tiene por qué romper nada del estilo de tu página, en todo caso, insertándolo de forma incorrecta, con algún error de síntaxis, provocaría un error crítico.

      De hecho el código está probado en la última versión de WordPress, copiado tal cual de la página al archivo functions.php del tema activo y funciona.

      Revisa si lo has insertado correctamente, que no lo hayas insertado en medio de otra función o similar. Y sobre todo, lee el aviso que pongo en todos mis posts:

      ///Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.///

      Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad

Hosting recomendado

Raiola Networks

Autor

Dani Sánchez
Dani Sánchez
@danisanchez82

Entradas recientes

  • Optimizar el archivo de configuración de WordPress (wp-config.php)
  • ¿Qué plugins tengo instalados en mi web en 2022?
  • Tu alojamiento web no es compatible con la rotación de imágenes. [Solución]
  • Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)
  • Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34

Comentarios recientes

  1. Armando en Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34
  2. Vito en Configurar en español los campos tipo fecha (date) en Ninja Forms
  3. Manel en Calcular rutas con OpenStreetMap partiendo de la geolocalización del usuario
  4. Leo en Modificar textos predefinidos de WordPress sin editar la traducción
  5. Alejo en Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)

Categorías

  • Actualidad
  • Afiliación AliExpress
  • Agent Press Pro
  • Bettaso Web Restaurantes
  • Cursos
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Iniciación a PHP
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • WordPress

Divi 20% descuento

Hosting Recomendado

Raiola Networks
Banner

Sitios web corporativos, blogs y tiendas online cuidando hasta el mínimo detalle

Si deseas proponerme un proyecto web ponte en contacto conmigo.

Contacto

Gestionatuweb © 2022 · Desarrollado con Genesis · Acceder
Política de privacidad · Política de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde a tus gustos. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias. Más información sobre las cookies que utilizamos en nuestra: Política de cookies.

Gestor de cookies:  GDPR Cookie Compliance
Resumen de uso de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde con tus intereses. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias.

Cookies técnicas (necesarias)

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies. Estas cookies son:

  • moove_gdpr_popup: Comprueba si debe mostrar o no el aviso de cookies (si ya ha sido aceptado o rechazado no se vuelve a mostrar mientras persista esta cookie). Expira en 1 año.
  • cpnb_cookiesSettings: Comprueba qué categorías de cookies se aceptan o rechazan (por ejemplo, cookies analíticas, cookies de publicidad dirigida, etc.). Expira en 1 año.
  • _GRECAPTCHA: Esta web utiliza el servicio reCAPTCHA para fortalecer la seguridad en los formularios y evitar el envío masivo de SPAM. reCAPTCHA utiliza esta cookie necesaria para realizar su análisis de riesgo. Expira en 6 meses.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de analítica

Utilizamos Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares. Dejando estas cookies activas nos permite mejorar nuestra web.

  • _ga: Analítica de Google. Se usa para distinguir a los usuarios. Expira en 2 años.
  • _gid: Se usa para distinguir a los usuarios. Expira en 24 horas.
  • _gat: Se usa para limitar el porcentaje de solicitudes. Expira en 1 minuto.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Cookies de publicidad

Utilizamos Google Adsense para mostrar publicidad en los artículos del blog acordes a tus intereses. Esta publicidad nos ayuda al mantenimiento del sitio web y del tiempo dedicado a la redacción del blog.

  • _gads: Publicidad de Google Adsense. Proporciona la publicación de anuncios de interés para el usuario. Expira en 13 meses.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Política de cookies

Más información sobre nuestra política de cookies