En algunos proyectos realizados con WordPress, puede que necesitemos ocultar un widget (por ejemplo, categorías, últimos posts, búsqueda, etc.) en una página específica como “Contacto” o “Gracias por tu compra”.
Esto se puede lograr fácilmente utilizando el filtro widget_display_callback, el cual permite modificar dinámicamente si un widget se muestra o no, según condiciones personalizadas.
¿Dónde colocar este código?
Debes pegar este código en el archivo functions.php de tu tema hijo activo, o mejor aún, en un plugin personalizado si lo tienes disponible. Puedes obtener el ID del widget, inspeccionando el HTML del widget en el frontend (ej. id=”categories-3″).
// Ocultar un widget específico solo en una página concreta
add_filter('widget_display_callback', 'ocultar_widget_en_pagina', 10, 3);
function ocultar_widget_en_pagina($instance, $widget, $args) {
// Verifica el ID base del widget (no el ID completo generado en HTML)
if ( $widget->id == 'categories-3' && is_page('contacto') ) {
return false; // Oculta el widget
}
return $instance; // Muestra el widget en otros casos
}