Sharing your stories has never been easier

El shortcode ahora es más robusto, limpio y fácil de mantener. Puedes usarlo igual que antes pero ahora solo 254 líneas pero más legibles.

3 funciones separadas con responsabilidades únicas:

  • ymk_arbol_taxonomias_shortcode() – lógica principal
  • ymk_build_term_link() – construcción de URLs (reutilizable)
  • ymk_get_taxonomy_icon() – manejo de iconos (reutilizable)

Recursiva con profundidad dinámica la magia está en que la función se llama a sí misma con el $term_id como nuevo padre y $current_level + 1 como nuevo nivel. ¡Así construye el árbol infinitamente!

  • get_categories() (línea 159): Obtiene los términos del nivel actual
  • get_terms() (línea 183): Verifica si un término tiene hijos
  • ymk_build_taxonomy_tree(): Se llama a sí misma recursivamente para construir cada nivel

📝 Ejemplos de uso:

Clases por defecto (estilo menú WordPress):

[arbol-taxonomias taxonomy='product_cat' icon='true']

Genera:

<ul class="sub-menu alignwide arbol-taxonomias">
    <li class="menu-item menu-item-has-children">...</li>
</ul>

Clases personalizadas:

[arbol-taxonomias taxonomy='product_cat' icon='true' class='mi-lista' itemclass='mi-item']

Genera:

<ul class="mi-lista alignwide arbol-taxonomias">
    <li class="mi-item menu-item-has-children">...</li>
</ul>

Parámetros disponibles:

  • taxonomy'product_cat' (o cualquier taxonomía)
  • icon'true' o 'false' – Muestra iconos si existen en taxonomy_image_plugin
  • empty'true' o 'false' – Mostrar/ocultar términos sin productos
  • deep012, o 3 por defecto y -1 para infinito.
  • orderby'name''count''id' – Orden de las categorías
  • parent0 (raíz) o ID de categoría padre específica
  • url: URL base personalizada (ej: '/tienda')
  • class: clase css para parent ul
  • itemclass: clase css para items

⚠️ Importante para que funcionen los iconos:

El shortcode busca las imágenes en taxonomy_image_plugin (el plugin que ya tienes instalado). Asegúrate de que:

  1. Las categorías tienen imágenes asignadas desde el plugin de imágenes de taxonomía
  2. El parámetro icon='true' está presente en el shortcode

Los iconos se renderizan con CSS mask, igual que en la versión de ortogest, así que heredarán el color del texto (currentColor).

Conclusión:

Mi versión es mejor porque:

  • ✅ Más rápida (menos llamadas a BD)
  • ✅ Más segura (escapado correcto)
  • ✅ Más mantenible (código DRY – Don’t Repeat Yourself)
  • ✅ Más legible (funciones pequeñas con un propósito)
  • ✅ Más robusta (validaciones y early returns)
  • ✅ Mejor documentada (PHPDoc completo)
  • $menu_output .= '<li class="' . esc_attr( $item_class ) . '">'; // Escapado correcto

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Establecimiento sanitario

Si lo necesitas te asesoramos de manera totalmente gratuita y sin compromiso alguno.