X

Cómo mostrar u ocultar widgets en páginas específicas en WordPress

Snippets de IsItWP

¿Estás buscando una forma de mostrar u ocultar widgets en páginas específicas de WordPress? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para mostrar u ocultar widgets en páginas específicas de WordPress.

Lo primero que necesitarás hacer es obtener el nombre del ID del widget que deseas definir. Puedes hacer esto viendo el código fuente de la página o usando una herramienta de inspección web para ver el ID del widget. El ejemplo actual está configurado para mostrar solo el widget principal de 'páginas' en la página de contacto. No olvides que `is_page` también acepta una matriz de nombres y/o IDs de página.

Instrucciones:

Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:

add_filter( 'widget_display_callback', 'hide_widget_pages', 10, 3 );
function hide_widget_pages( $instance, $widget, $args ) {
  if ( $widget->id_base == 'pages' ) { // change 'pages' to widget name
     if ( !is_page( 'contact' ) ) {    // change page name
         return false;
     }
  }
}

Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.

Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: 30 formas de ganar dinero con blogs en línea y cómo crear un formulario de WordPress con un selector de fecha.

Comentarios   Deja una respuesta

  1. ¡Me encanta este fragmento de tutorial, gracias!

    Desafortunadamente, recibí 2 advertencias:
    array_merge(): El argumento #2 no es un array
    array_merge(): El argumento #1 no es un array

    sin embargo, sí eliminó las barras laterales de la página condicional, incluso con errores.

    Todavía estoy aprendiendo PHP y no estoy seguro de cómo incluir el array $args, si pudieras aconsejarme... sería maravilloso.

    También me pregunto si hay una forma de eliminar 1 (uno) o más widgets específicos, de una barra lateral especificada sin eliminar todos.

    de cualquier manera, gracias por publicar este fragmento <3

    1. ¿Estás agregando un array al fragmento?

  2. Hola 🙂
    Tu código me funcionó en todas las páginas de WordPress, pero este código no me funcionó en la página de la tienda WooCommerce. Tengo un widget básico de barra de búsqueda de productos en la cabecera de cada página, pero solo quiero que esté en la página de la TIENDA. Mi ID de página de tienda de WooCommerce es 552, así que usé este código:

    add_filter( ‘widget_display_callback’, ‘hide_widget_pages’, 10, 3 );
    function hide_widget_pages( $instance, $widget, $args ) {
    if ( $widget->id_base == ‘woocommerce_product_search’ ) { // change ‘pages’ to widget name
    if ( !is_page( ‘552’ ) ) { // change page name
    return false;
    }
    }
    }

    Cuando agrego otro ID de página como la página 'Acerca de nosotros', cuyo ID es 551... si configuro este ID, tu código ocultará la barra de búsqueda de productos en todos los sitios excepto en la página 'Acerca de nosotros'. Pero cuando escribo el ID de la página de la TIENDA, que es 552, la barra de búsqueda desaparece de todas las páginas, incluso de la página de la tienda de WooCommerce. ¿Puedes ayudarme por favor? ¡Muchas gracias! :)

    1. Quizás quieras verificar que 552 sea el ID correcto. Si lo es, podrías contactar al soporte de WooCommerce.

  3. ¿Podrías indicarme cómo cambiar el fragmento de código para poder ocultar varios widgets en páginas específicas?

  4. ¡Genial Joel! Estaré esperando ver más de lo que has estado trabajando.

  5. Código muy útil. Gracias por compartir.

    1. De nada Sajan, Joel Worsham va a contribuir a wpsnipp.com, así que estoy seguro de que tendrá muchos fragmentos de código geniales próximamente.

  6. Me gusta. Gracias por compartir.

    Ahorra la instalación de otro plugin.

    1. Muy cierto brad, ¡un fragmento de código agradable y simple!

Agrega un comentario

Nos complace que hayas elegido dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad, y todos los enlaces son nofollow. NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

Lista de verificación para lanzar WordPress

La lista de verificación definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de verificación para el lanzamiento de tu próximo sitio web de WordPress en un práctico ebook.
¡Sí, envíame el eBook gratis!