Cómo ocultar un widget de WordPress en una página específica usando código

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
}