Usa un simple fragmento de WordPress para ocultar la barra de administración para suscriptores, clientes y otros usuarios no administradores manteniendo la para administradores.
ES

Desactivar la barra de administración de WordPress para no administradores

5.00 /5 - (30 votes )
Última verificación: 1 de mayo de 2026
7min de lectura
Tutorial
500+ proyectos WP

Cuando construyes un sitio de membresia, tienda online (WooCommerce) o una plataforma donde los usuarios inician sesion, el comportamiento predeterminado de WordPress puede ser molesto. Cada usuario conectado ve la barra de administración negra en la parte superior de la pantalla.

Descubre más sobre servicios de desarrollo WordPress en WPPoland. Aunque es útil para ti (el admin) para editar rápidamente entradas o saltar al panel, rompe la inmersion para un clientes regular. Se ve “WordPress-esco” y a menudo se superpone con tu cabecera personalizada.

Si tu objetivo es un area de miembros o escaparate más limpio, la solución habitual es ocultar la barra de herramientas en el frontend para usuarios que no necesitan acceso editorial, dejando la experiencia del panel intacta para administradores.

#El problema: Desorden de la barra de administración

La barra de administración de WordPress (también llamada Toolbar) aparece para todos los usuarios conectados por defecto. Aunque es útil para administradores del sitio, puede ser problematica para:

  • Sitios de membresia: Rompe el aspecto profesional
  • Tiendas de comercio electronico: Distrae de la experiencia de compra
  • Portales de clientes: Se ve poco profesional
  • Aplicaciones personalizadas: No coincide con tu diseño

Problemás comunes:

  • Se superpone con cabeceras personalizadas
  • Muestra branding de WordPress (se ve poco profesional)
  • Revela funcionalidad de admin a no administradores
  • Ocupa espacio vertical
  • Puede entrar en conflicto con CSS personalizado

#La solución completa

No necesitas un plugin para arreglar esto. Solo anade este fragmento completo al archivo functions.php de tu tema o a un plugin específico del sitio.

#Implementación básica

/**
 * Desactivar la barra de admin para todos excepto administradores
 */
add_action('after_setup_theme', 'wppoland_remove_admin_bar');

function wppoland_remove_admin_bar() {
    if ( ! current_user_can( 'administrator' ) && ! is_admin() ) {
        show_admin_bar( false );
    }
}

#Como funciona

  1. current_user_can('administrator'): Comprueba si el usuario actual tiene el rol ‘Administrador’.
  2. ! is_admin(): Asegura que estamos en el frontend del sitio (no queremos ocultar la barra dentro del Panel).
  3. show_admin_bar(false): La función magica que la desactiva.

Importante: El hook after_setup_theme se ejecuta lo suficientemente temprano para evitar que la barra de admin se cargue, lo cual es más eficiente que eliminarla despues de renderizarla.

#Implementaciones avanzadas

#Ocultacion basada en roles

Ocultar la barra de admin para roles de usuario específicos:

/**
 * Ocultar barra de admin para roles específicos
 */
add_action('after_setup_theme', 'wppoland_remove_admin_bar_by_role');

function wppoland_remove_admin_bar_by_role() {
    if ( is_admin() ) {
        return; // Siempre mostrar en area de admin
    }

    $current_user = wp_get_current_user();

    // Ocultar para estos roles
    $hidden_roles = array( 'subscriber', 'customer', 'contributor' );

    if ( array_intersect( $hidden_roles, $current_user->roles ) ) {
        show_admin_bar( false );
    }
}

#Ocultacion basada en capacidades

Usa capacidades en lugar de roles para más flexibilidad:

/**
 * Ocultar barra de admin basada en capacidades
 */
add_action('after_setup_theme', 'wppoland_remove_admin_bar_by_capability');

function wppoland_remove_admin_bar_by_capability() {
    if ( is_admin() ) {
        return;
    }

    // Ocultar si el usuario no puede editar entradas
    if ( ! current_user_can( 'edit_posts' ) ) {
        show_admin_bar( false );
    }
}

#Ocultacion condicional (específica por página)

Ocultar la barra de admin en páginas o tipos de entrada específicos:

/**
 * Ocultar barra de admin en páginas específicas
 */
add_action('after_setup_theme', 'wppoland_conditional_admin_bar');

function wppoland_conditional_admin_bar() {
    if ( is_admin() ) {
        return;
    }

    // Ocultar en páginas de WooCommerce
    if ( function_exists( 'is_woocommerce' ) && is_woocommerce() ) {
        if ( ! current_user_can( 'manage_woocommerce' ) ) {
            show_admin_bar( false );
        }
    }

    // Ocultar en tipos de entrada personalizados
    if ( is_singular( 'course' ) || is_singular( 'membership' ) ) {
        if ( ! current_user_can( 'administrator' ) ) {
            show_admin_bar( false );
        }
    }
}

#Control basado en meta del usuario

Permite a los usuarios alternar la barra de admin via su perfil:

/**
 * Permitir a usuarios alternar barra de admin en perfil
 */
add_action( 'show_admin_bar', 'wppoland_user_preference_admin_bar' );

function wppoland_user_preference_admin_bar( $show ) {
    if ( is_admin() ) {
        return $show;
    }

    $user_id = get_current_user_id();
    $user_preference = get_user_meta( $user_id, 'show_admin_bar_front', true );

    if ( $user_preference === 'false' ) {
        return false;
    }

    return $show;
}

#Alternativa solo CSS (no recomendada)

Puedes ocultar la barra de admin con CSS, pero es menos eficiente:

/* Ocultar barra de admin con CSS */
#wpadminbar {
    display: none !important;
}

/* Ajustar padding del body */
.admin-bar .site-header {
    top: 0 !important;
}

Por que no se recomienda:

  • La barra de admin sigue cargandose (desperdicia recursos)
  • El JavaScript sigue ejecutandose
  • Puede causar desplazamientos de layout
  • No es semántico (ocultar vs. no cargar)

#Consideraciones de rendimiento

#Por que el código supera al CSS

Enfoque CSS:

  • El HTML de la barra de admin sigue cargandose (~15KB)
  • El JavaScript sigue ejecutandose (~10KB)
  • Los estilos siguen cargandose (~5KB)
  • Total: ~30KB desperdiciados por página

Enfoque de código:

  • La barra de admin nunca se carga
  • Cero sobrecarga
  • HTML más limpio
  • Mejor rendimiento

#Temporizacion del hook

Usa after_setup_theme en lugar de init o wp_loaded:

// Correcto: Hook temprano, previene la carga
add_action('after_setup_theme', 'wppoland_remove_admin_bar');

// Incorrecto: Demasiado tarde, la barra ya cargo
add_action('wp_loaded', 'wppoland_remove_admin_bar');

#Por que usar código en lugar de un plugin?

Existen plugins como “Hide Admin Bar” que hacen exactamente esto. Pero por que instalar un plugin (que anade opciones en la base de datos y potencial sobrecarga) para 5 lineas de código?

Sobrecarga del plugin:

  • Consultas a la base de datos para opciones
  • Archivos PHP adicionales cargados
  • Mantenimiento de actualizaciones del plugin
  • Potenciales conflictos
  • Peticiones HTTP extra

Beneficios del código:

  • Cero sobrecarga
  • Control de versiones
  • Sin conflictos de plugins
  • Ejecucion más rápida
  • Parte de tu tema/plugin

#Casos de uso del mundo real

#Caso de uso 1: Sitio de membresia

add_action('after_setup_theme', function() {
    if ( is_admin() ) {
        return;
    }
    if ( ! current_user_can( 'administrator' ) ) {
        show_admin_bar( false );
    }
});

#Caso de uso 2: Tienda WooCommerce

add_action('after_setup_theme', function() {
    if ( is_admin() ) {
        return;
    }
    $user = wp_get_current_user();
    if ( in_array( 'customer', $user->roles ) ) {
        show_admin_bar( false );
    }
});

#Caso de uso 3: Blog multi-autor

add_action('after_setup_theme', function() {
    if ( is_admin() ) {
        return;
    }
    $hidden_roles = array( 'author', 'contributor', 'subscriber' );
    $current_user = wp_get_current_user();
    if ( array_intersect( $hidden_roles, $current_user->roles ) ) {
        show_admin_bar( false );
    }
});

#Resolución de problemas

#Problema: La barra de admin sigue mostrando

Solución:

add_action('after_setup_theme', 'wppoland_force_remove_admin_bar', 999);

function wppoland_force_remove_admin_bar() {
    if ( ! current_user_can( 'administrator' ) && ! is_admin() ) {
        add_filter( 'show_admin_bar', '__return_false' );
        show_admin_bar( false );
    }
}

#Problema: Problemás de layout despues de ocultar

Solución: Ajustar padding del body si es necesario:

body.admin-bar {
    padding-top: 0 !important;
}
.site-header {
    top: 0;
}

#Mejores prácticas

#1. Siempre comprobar is_admin()

// Correcto
if ( ! is_admin() && ! current_user_can( 'administrator' ) ) {
    show_admin_bar( false );
}

// Incorrecto (oculta en area de admin)
if ( ! current_user_can( 'administrator' ) ) {
    show_admin_bar( false );
}

#2. Usar capacidades, no roles

// Correcto: Mas flexible
if ( ! current_user_can( 'edit_posts' ) ) {
    show_admin_bar( false );
}

#3. Probar todos los roles de usuario

Siempre prueba con diferentes roles de usuario:

  • Administrador (debe ver la barra)
  • Editor (decidir según necesidades)
  • Autor (decidir según necesidades)
  • Suscriptor (generalmente ocultar)
  • Cliente (generalmente ocultar)

#Resumen

Ocultar la barra de administración de WordPress para no administradores es una forma simple pero efectiva de mejorar la experiencia de usuario de tu sitio. Hace que tu sitio se vea más profesional y menos “WordPress-esco”.

Puntos clave:

  • Usa show_admin_bar( false ) en el hook after_setup_theme
  • Siempre comprueba is_admin() para evitar ocultar en el panel
  • Usa capacidades para control flexible
  • La solución con código es mejor que CSS o plugins
  • Prueba con diferentes roles de usuario

Este simple ajuste mejora la experiencia de usuario (UX) de tu sitio significativamente, haciendolo sentir más como una aplicación profesional y menos como un blog estándar. En 2026, con el enfoque en experiencia de usuario y rendimiento, ocultar la barra de admin para no administradores se considera una mejor práctica para sitios de membresia, tiendas de comercio electronico y aplicaciones personalizadas.

Siguiente paso

Transforma el artículo en una implementación real

Este bloque refuerza el enlazado interno y lleva al lector al siguiente paso más útil dentro de la arquitectura del sitio.

¿Quieres implementar esto en tu sitio?

Si quieres transformar el artículo en mejoras concretas, rediseño o un plan de implementación, puedo cerrar el alcance y ejecutar.

Cluster relacionado

Explora otros servicios WordPress y base de conocimiento

Refuerza tu negocio con soporte técnico profesional en áreas clave del ecosistema WordPress.

Ocultar la barra de administración afectara la funcionalidad de admin?
No. Los administradores seguiran viendo la barra de administración. El código comprueba específicamente la capacidad 'manage_options', que solo tienen los administradores. Otros usuarios no la veran en el frontend.
Puedo ocultar la barra de administración solo para roles específicos?
Si. Modifica la condicion para apuntar a roles específicos: usa current_user_can('subscriber') para ocultar solo para suscriptores, o usa un array de roles para apuntar a multiples grupos.
Donde debo anadir este código?
Anadelo al archivo functions.php de tu tema hijo o usa un plugin específico del sitio. Nunca lo anadas al tema padre ya que se perdera en las actualizaciones del tema.
Esto afecta al panel de administración del backend?
No. Esto solo afecta al frontend de tu sitio. La barra de administración seguira visible en el panel de WordPress para todos los usuarios que tengan acceso.
Existe una alternativa con plugin a este código?
Si, existen plugins como 'Hide Admin Bar Based on User Roles', pero el fragmento de código es más ligero y no anade sobrecarga de plugin a tu sitio.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Artículos Relacionados

Descubre cuándo una reconstrucción de sitio web es necesaria. 7 señales técnicas y de negocio medibles que indican que tu sitio necesita modernización en 2026.
wordpress

¿Cuándo reconstruir tu sitio web? 7 señales de que necesita modernización

Descubre cuándo una reconstrucción de sitio web es necesaria. 7 señales técnicas y de negocio medibles que indican que tu sitio necesita modernización en 2026.

Deja de entregar dashboards genericos. Aprende a personalizar el Menú Admin, Toolbar y Widgets del Dashboard de WordPress para crear una experiencia white-label para tus clientes.
development

Dominando la personalización del admin WordPress: Guia del desarrollador 2026

Deja de entregar dashboards genericos. Aprende a personalizar el Menú Admin, Toolbar y Widgets del Dashboard de WordPress para crear una experiencia white-label para tus clientes.

De seis a dieciséis semanas para proyectos típicos, en cuatro fases: descubrimiento, alcance, construcción y cutover, ajuste. Las variables son el tamaño del catálogo, el número de integraciones, la preservación de URLs y la disposición del equipo editorial, no la elección del framework.
wordpress

¿Cuánto tarda una migración a WordPress headless en 2026?

De seis a dieciséis semanas para proyectos típicos, en cuatro fases: descubrimiento, alcance, construcción y cutover, ajuste. Las variables son el tamaño del catálogo, el número de integraciones, la preservación de URLs y la disposición del equipo editorial, no la elección del framework.