Controlar la visibilidad del contenido en WordPress se ha convertido en una herramienta clave para diseñadores y desarrolladores que buscan una experiencia dinámica, personalizada y adaptable. Ya sea por motivos de programación de campañas, diseño responsive o control de acceso por roles, la posibilidad de mostrar u ocultar bloques del editor Gutenberg en función de determinadas condiciones mejora tanto la gestión del sitio como la experiencia del usuario.
En este artículo se detallan varias formas de gestionar la visibilidad de bloques, tanto mediante plugins como con fragmentos de código personalizado, adaptables a temas clásicos, híbridos o basados en bloques.
Uno de los plugins más completos y populares. Gratuito, sin versión premium, y con una interfaz intuitiva. Permite condicionar la visibilidad de cualquier bloque según múltiples reglas combinables:
Incluye funciones adicionales como la creación de presets reutilizables, modo de control total y compatibilidad con el editor del sitio.
Ejemplo: mostrar un aviso de “Tienda abierta” entre las 8:00 y las 17:00 h, y ocultarlo fuera de ese horario.
Más sencillo, pero útil. Permite controlar bloques según:
Además, incluye herramientas para copiar, pegar, restaurar o desactivar temporalmente las reglas aplicadas.
La versión premium amplía funciones con programación horaria, integración con WooCommerce, Easy Digital Downloads y lógica booleana avanzada.
Menos conocido, pero potente. Destaca por:
Plugin gratuito que destaca por su capacidad de personalización a través de funciones PHP, además de reglas por:
Una opción interesante para desarrolladores que desean combinar control visual con lógica personalizada.
Si se desea evitar el uso de plugins o se tiene un caso de uso concreto, es posible utilizar fragmentos de código para controlar la visibilidad de contenido. A continuación, algunos ejemplos:
add_action( 'wp_head', 'ocultar_parrafos_para_logueados' );
function ocultar_parrafos_para_logueados() {
if ( is_user_logged_in() ) {
echo '<style>p { display: none !important; }</style>';
}
}
También se puede invertir la lógica con !is_user_logged_in() para ocultar a usuarios no conectados.
add_action('wp_head', 'ocultar_titulares_para_usuarios_usa');
function ocultar_titulares_para_usuarios_usa() {
$ip = $_SERVER['REMOTE_ADDR'];
$geo = wp_remote_get("https://ipapi.co/{$ip}/json/");
if ( is_wp_error($geo) ) return;
$data = json_decode( wp_remote_retrieve_body($geo) );
if ( isset($data->country_code) && $data->country_code === 'US' ) {
echo '<style>h1, h2, h3 { display: none !important; }</style>';
}
}
⚠️ Se recomienda almacenar en caché la respuesta para evitar ralentizar la carga del sitio.
add_filter('post_thumbnail_html', 'ocultar_imagen_destacada_en_libros', 10, 2);
function ocultar_imagen_destacada_en_libros($html, $post_id) {
if ( has_category('libros', $post_id) ) {
return ''; // Oculta imagen destacada
}
return $html;
}
Antes de aplicar estos métodos en producción:
Mostrar u ocultar bloques en WordPress según condiciones abre una puerta enorme a la personalización, eficiencia y control de la experiencia de usuario. Ya sea mediante plugins como Block Visibility, Conditional Blocks o Content Control, o con código propio, esta funcionalidad permite desde acciones básicas hasta automatizaciones avanzadas para campañas, membresías o adaptaciones por dispositivo.
Los usuarios avanzados pueden aprovechar filtros, roles, cookies, geolocalización o metadatos para crear entornos inteligentes y adaptativos, todo dentro del ecosistema nativo de WordPress.
¿Trabajas en proyectos con Gutenberg? Incorporar controles condicionales te permitirá escalar tu diseño con una lógica robusta sin sacrificar rendimiento.
