HUSKY - Product Filter for WooCommerce

Cómo mostrar diferentes filtros de WooCommerce en diferentes páginas

El shortcode [woof] del filtro HUSKY para WooCommerce acepta atributos que te permiten controlar qué filtros aparecen y qué productos muestran.

Atributos principales:

  • tax_only – Muestra solo taxonomías específicas (categorías, atributos)
  • by_only – Muestra solo filtros no taxonómicos específicos (precio, SKU, stock, etc.)
  • taxonomies – Muestra solo términos taxonómicos específicos (se usa con el recuento dinámico)

Ejemplos de shortcode

Filtrar taxonomías específicas

Muestra solo filtros de categoría y marca:

[woof tax_only="product_cat,pa_brand"]

Filtrar elementos no taxonómicos

Muestra solo filtros de precio, SKU y stock:

[woof by_only="by_price,by_sku,by_instock"]

Combinado: taxonomías + filtros no taxonómicos

Muestra taxonomías específicas Y filtros no taxonómicos:

[woof tax_only="product_cat,pa_size,pa_color" by_only="by_price,by_instock"]

Usando el atributo taxonomies (para recuento dinámico)

Muestra solo términos específicos de taxonomías específicas:

[woof taxonomies="product_cat:35,42,58+pa_brand:nike,adidas"]

Nota: El atributo taxonomies se usa cuando tienes activado el “recuento dinámico” o “ocultar opciones vacías”.

Guía completa de configuración

Paso 1: Crea tus shortcodes

Crea diferentes shortcodes [woof] para cada página con los atributos apropiados.

Ejemplo:

  • Proveedor A: [woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"]
  • Proveedor B: [woof taxonomies="product_cat:50+pa_brand:nike,adidas" by_only="by_price"]

Paso 2: Coloca los shortcodes en widgets

  1. Ve a Apariencia → Widgets
  2. Añade un widget de Texto o HTML personalizado a tu barra lateral
  3. Pega tu shortcode en el widget
  4. Crea widgets separados para cada shortcode

Paso 3: Instala un plugin de widgets condicionales

Necesitas un plugin para controlar la visibilidad de los widgets según las condiciones de la página.

Elige uno:

Paso 4: Establece las condiciones de visibilidad

Añade lógica condicional a cada widget para controlar dónde aparece.

Ejemplos de lógica condicional

Mostrar filtro en una página específica

Por slug de página:

is_page('supplier-nike')

Por ID de página:

is_page(123)

Mostrar filtro en múltiples páginas

is_page(array('supplier-1', 'supplier-2', 'supplier-3'))

Mostrar filtro en el archivo de categoría

Por ID de categoría:

is_product_category(35)

Por slug de categoría:

is_product_category('electronics')

Mostrar filtro en una taxonomía personalizada

is_tax('supplier', 'nike-products')

Excluir páginas específicas

Mostrar en todas partes EXCEPTO en la página 123:

!is_page(123)

Ejemplo completo de configuración

Escenario: 3 proveedores con diferentes filtros

Proveedor A (Nike) – ID de página: 123

  • Shortcode: [woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"]
  • Condición del widget: is_page(123)
  • Resultado: Muestra todas las categorías de productos con filtros de tamaño, color y precio

Proveedor B (Adidas) – Slug de página: adidas-products

  • Shortcode: [woof taxonomies="product_cat:40,41,42" by_only="by_instock"]
  • Condición del widget: is_page('adidas-products')
  • Resultado: Muestra solo las categorías 40, 41, 42 con el filtro de stock

Proveedor C – ID de archivo de categoría: 50

  • Shortcode: [woof tax_only="product_cat,pa_brand" by_only="by_price,by_sku"]
  • Condición del widget: is_product_category(50)
  • Resultado: Muestra categorías, marcas, precio y filtro de SKU

Comprendiendo los atributos

tax_only vs taxonomies

Usa tax_only cuando:

  • Quieres mostrar taxonomías completas (todos los términos)
  • Ejemplo: tax_only="product_cat,pa_brand" muestra todas las categorías y todas las marcas

Usa taxonomies cuando:

  • Tienes activado el “recuento dinámico” o “ocultar opciones vacías”
  • Quieres mostrar términos específicos de taxonomías específicas
  • Ejemplo: taxonomies="product_cat:35,42+pa_brand:nike" muestra solo las categorías 35 y 42, y solo la marca Nike

Valores de by_only

Filtros no taxonómicos disponibles para by_only:

  • by_price – Control deslizante de rango de precio
  • by_sku – Búsqueda por SKU
  • by_text – Búsqueda de texto
  • by_author – Filtrar por autor
  • by_onsales – Mostrar solo productos en oferta
  • by_instock – Mostrar solo productos en stock
  • Claves de campos meta (si están habilitadas en la configuración de WOOF)

Usa by_only="none" para ocultar todos los filtros no taxonómicos.

Cómo encontrar IDs y slugs

IDs de categoría

  1. Ve a Productos → Categorías
  2. Pasa el ratón sobre el nombre de la categoría
  3. Mira la barra de estado del navegador o la URL
  4. Encuentra tag_ID=35 – el número es tu ID de categoría

IDs de página

  1. Ve a Páginas
  2. Pasa el ratón sobre el nombre de la página
  3. Mira la URL: post=123
  4. El número es tu ID de página

Slugs de atributos

  1. Ve a Productos → Atributos
  2. Los slugs de atributos comienzan con pa_
  3. Ejemplos: pa_brand, pa_size, pa_color, pa_material

Probando tu configuración

  1. Primero prueba los shortcodes
    • Coloca el shortcode directamente en una página de prueba
    • Verifica que los filtros se muestren correctamente
    • Comprueba que el filtrado funcione
  2. Prueba la visibilidad del widget
    • Visita cada página donde debería aparecer el filtro
    • Verifica que se muestre el filtro correcto
    • Comprueba que otros filtros no aparezcan
  3. Verifica que solo haya un filtro por página
    • Múltiples filtros en la misma página causarán conflictos
    • Usa condiciones de widget para asegurar la exclusividad

Limitación importante

Solo un filtro por página: Solo puede haber un filtro WOOF activo en una página a la vez. Varios filtros causarán conflictos.

Solución: Usa la lógica condicional de widgets para asegurar que solo se muestre un widget de filtro por página.

Consejos

  1. Primero prueba los shortcodes directamente
    • Antes de añadirlos a widgets, prueba los shortcodes en una página normal
    • Esto asegura que los atributos sean correctos
  2. Usa condiciones exclusivas
    • Asegúrate de que las condiciones de los widgets no se superpongan
    • Solo un filtro debe ser visible por página
  3. Condiciones negativas
    • Usa !is_page(123) para excluir páginas específicas
    • Útil para escenarios de “mostrar en todas partes excepto”
  4. Comprueba los slugs de atributos
    • Los slugs de atributos deben comenzar con pa_
    • Slug incorrecto = el filtro no aparecerá

Documentación completa

Para la referencia completa de atributos del shortcode: https://products-filter.com/shortcode/woof

Solución de problemas

El filtro no aparece

Posibles causas:

  • La condición del widget es falsa para la página actual
  • Los atributos del shortcode son incorrectos
  • Los IDs de categoría/atributo no existen
  • Varios filtros en conflicto

Solución:

  • Verifica que el ID/slug de la página coincida con la condición
  • Comprueba los IDs de categoría en Productos → Categorías
  • Prueba el shortcode primero en una página normal
  • Asegúrate de que solo haya un widget de filtro por página

Se muestran productos incorrectos

Posibles causas:

  • IDs de categoría incorrectos
  • Slugs de atributos incorrectos
  • Uso del atributo incorrecto (tax_only vs taxonomies)

Solución:

  • Vuelve a verificar los IDs de categoría
  • Verifica que los slugs de atributos comiencen con pa_
  • Usa taxonomies si tienes el recuento dinámico activado
  • Prueba primero con un shortcode más simple

Se muestran varios filtros

Causa: Las condiciones del widget se superponen

Solución:

  • Revisa todas las condiciones del widget
  • Asegura la exclusividad mutua
  • Usa condiciones negativas para separar

El filtro se muestra en páginas incorrectas

Causa: La condición del widget es demasiado amplia

Solución:

  • Haz la condición más específica
  • Usa el ID de página en lugar de categoría si es necesario
  • Prueba la lógica de condición cuidadosamente

Resumen

Para mostrar diferentes filtros en diferentes páginas:

  1. Crea shortcodes [woof] personalizados con los atributos tax_only y/o by_only
  2. Coloca cada shortcode en widgets de Texto/HTML separados
  3. Instala el plugin Widget Logic
  4. Añade lógica condicional a cada widget (ej., is_page(123))
  5. Prueba para asegurar que solo se muestre un filtro por página

Recuerda: Solo un filtro puede estar activo por página. Usa condiciones de widget para asegurar la exclusividad.