¿Cómo listar categorías de taxonomías personalizadas?
Tengo un tipo de publicación personalizada (CPT) que contiene productos y una taxonomía que contiene términos de productos. Necesito mostrar estos términos en la página 'Productos' y cuando se hace clic en un término específico, debe mostrar los productos que pertenecen a ese término.
Por cierto, cuando hago clic en 'ver' en un término específico, solo muestra el título de un producto. Creé el CPT y la taxonomía usando el plugin CPT UI.
Aquí está el código de mi archivo de plantilla page-products.php (que lista todos los productos):
<?php
/* Nombre de la Plantilla: Productos
*/
?>
<?php get_header('header.php') ?>
<!--Abriendo contenedor o envoltura fuera del bucle-->
<div class="container my-container">
<!--inicio del bucle-->
<?php
$args=array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => 10,
);
$the_query = null;
$the_query = new WP_Query($args);
if( $the_query->have_posts() ) {
$i = 0;
while ($the_query->have_posts()) : $the_query->the_post();
if($i % 3 == 0) { ?>
<div class="row">
<?php
}
?>
<div class="col-md-4">
<div class="my-inner">
<?php the_post_thumbnail(); ?>
<div class="title"><a href="<?php the_permalink(); ?>"><?php
the_title(); ?></a></div>
<?php the_excerpt(); ?>
</div>
</div>
<?php $i++;
if($i != 0 && $i % 3 == 0) { ?>
</div><!--/.row-->
<div class="clearfix">fgfd</div>
<?php
} ?>
<?php
endwhile;
}
wp_reset_query();
?>
Para obtener una lista de tus taxonomías personalizadas, puedes usar la función get_terms()
para crear un bucle:
// Obtener los términos de la taxonomía
$terms = get_terms(
array(
'taxonomy' => 'tu-taxonomia',
'hide_empty' => false,
)
);
// Verificar si existe algún término
if ( ! empty( $terms ) && is_array( $terms ) ) {
// Ejecutar un bucle y mostrarlos todos
foreach ( $terms as $term ) { ?>
<a href="<?php echo esc_url( get_term_link( $term ) ) ?>">
<?php echo $term->name; ?>
</a><?php
}
}

¡Gracias, esto funciona! Aunque tengo otro problema - cuando hago clic en mi categoría, solo aparece el título de una publicación. ¿Necesito tener una plantilla específica que muestre las publicaciones por categoría? Perdón si sueno tonto, pero estoy perdido.

De nada. No es nada tonto. Esto puede tener varias razones. Una podría ser que configuraste las publicaciones por página a 1 en los ajustes de "Lectura" en el panel. Otro problema podría estar en la plantilla. Prueba revisando el archivo taxonomy-your_taxonomy.php
o taxonomy.php
si existe. También podrías tener un filtro pre_get_posts
en tu archivo functions.php
que limite los resultados.

Vale, crear la plantilla de taxonomía funcionó, cuando hago clic en la categoría, obtengo una lista de mis publicaciones. Pero usando el código de mi publicación original, obtengo los mismos productos sin importar en qué categoría hago clic. Por ejemplo, tengo una categoría con 3 productos y cuando hago clic en ella veo esos productos, pero veo los mismos productos cuando hago clic en una categoría diferente. ¿Creo que necesito usar el ID de la categoría, verdad?

Claro que sí. Necesitas hacer un tax_query
si planeas usar tu propio código. Echa un vistazo a la clase WP_Query
y no dudes en hacer una nueva pregunta si el problema persiste.

Hola Jack. Realmente quiero agradecerte por toda la ayuda. Logré obtener el resultado final que quería. ¡Un brindis por ti, hombre! :)
