WooCommerce: Cómo mostrar CATEGORIAS sin productos
Mostrar categorías sin productos usando Shortcodes de WooCommerce
→ Ir a la Página oficial de Shortcodes incluidos en WooCommerce : Atributos de categoría de producto disponibles
En la pagina donde deseas listar las categorias sin productos devemos agregar el siguiente shortcode
[product_categories hide_empty=0]
Documentación:
Estos dos shortcodes mostrarán tus categorías de productos en cualquier página.
[product_category]: mostrará los productos de una categoría de producto específica.[product_categories]: mostrará todas las categorías de productos.
Atributos de categoría de producto disponibles
ids: especifica los ID de categoría específicos que se mostraranlimit: el número de categorías a mostrarcolumns: el número de columnas a mostrar. El valor predeterminado es 4hide_empty: el valor predeterminado es «1», que ocultará las categorías vacías. Establece en «0» para mostrar categorías vacíasparent: configúralo con un ID de categoría específico, si deseas mostrar todas sus subcategorías o categorías hijoorderby: el valor predeterminado es ordenar por «nombre», se puede establecer en «id», «slug» o «menu_order». Si deseas ordenar por los IDs que especificaste, puedes usarorderby="include"order: indica si el orden de las categorías es ascendente (ASC) o descendente (DESC), utilizando el método establecido enorderby. El valor predeterminado esASC.
Mostrar categorías sin productos agregando código al archivo functions.php
Por defecto, las categorías de WooCommerce en las que aún no haya productos publicados no se muestran en la página de tu tienda.
Tiene toda la lógica, y evita que los clientes vean páginas vacías, lo que siempre es mala opción, pero A VECES, puede que quieras que aparezcan esas categorías – aún vacías – en los listados de categorías
Si es tu caso, conseguirlo es fácil, solo tienes que añadir una línea de código al archivo functions.php de tu tema activo:
/* Mostrar categorías vacías */
add_filter( 'woocommerce_product_subcategories_hide_empty', '__return_false' );