¿Cómo listar categorías de taxonomías personalizadas?

1 dic 2017, 11:49:53
Vistas: 37K
Votos: 6

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();
    ?>

3
Comentarios

Esto sucede automáticamente si usas la consulta principal en las plantillas correctas. Revisa la Jerarquía de Plantillas para ver las plantillas requeridas. Los archivos de tipos de contenido/taxonomías no necesitan, y no deberían ser, implementados como plantillas de página.

Jacob Peattie Jacob Peattie
1 dic 2017 11:51:19

¿Podrías elaborar más? ¿Debería consultar los términos de taxonomía en mi page-products.php primero, cierto?

oksite oksite
1 dic 2017 12:06:56

No. No debería haber ninguna plantilla de página o consultas secundarias.

Jacob Peattie Jacob Peattie
1 dic 2017 12:44:48
Todas las respuestas a la pregunta 1
6
14

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
    }
} 
1 dic 2017 12:24:19
Comentarios

¡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.

oksite oksite
1 dic 2017 12:30:48

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.

Johansson Johansson
1 dic 2017 12:38:07

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?

oksite oksite
1 dic 2017 12:44:39

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.

Johansson Johansson
1 dic 2017 14:12:06

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

oksite oksite
1 dic 2017 14:14:46

cómo obtener la taxonomía de categoría

Ravindrasinh Zala Ravindrasinh Zala
15 sept 2020 11:53:54
Mostrar los 1 comentarios restantes