Come elencare le categorie di una tassonomia personalizzata?

1 dic 2017, 11:49:53
Visualizzazioni: 37K
Voti: 6

Ho un tipo di post personalizzato (CPT) che contiene prodotti e una tassonomia che contiene i termini dei prodotti. Ho bisogno di visualizzare questi termini nella pagina 'Prodotti' e quando si fa clic su un determinato termine, deve mostrare i prodotti che appartengono a quel termine.

Tra l'altro, quando faccio clic su 'visualizza' su un determinato termine, viene visualizzato solo il titolo di un prodotto. Ho creato il CPT e la tassonomia utilizzando il plugin CPT UI.

Ecco il codice del mio file template page-products.php (che elenca tutti i prodotti):

<?php
/* Template Name: Prodotti
*/
?>

<?php get_header('header.php') ?>

<!--Apertura del container o wrap fuori dal loop-->
<div class="container my-container">
<!--inizia il loop-->
   <?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
Commenti

Questo avviene automaticamente se utilizzi la query principale nei template corretti. Rivedi la Gerarchia dei Template per vedere i template richiesti. Gli archivi per i tipi di post/tassonomie non devono e non dovrebbero essere implementati come template di pagina.

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

Potresti approfondire? Dovrei prima interrogare i termini della tassonomia nel mio page-products.php, giusto?

oksite oksite
1 dic 2017 12:06:56

No. Non dovrebbero esserci template di pagina o query secondarie.

Jacob Peattie Jacob Peattie
1 dic 2017 12:44:48
Tutte le risposte alla domanda 1
6
14

Per ottenere un elenco delle tue tassonomie personalizzate, puoi usare la funzione get_terms() per creare un ciclo:

// Ottieni i termini della tassonomia
$terms = get_terms(
    array(
        'taxonomy'   => 'your-taxonomy',
        'hide_empty' => false,
    )
);

// Verifica se esistono termini
if ( ! empty( $terms ) && is_array( $terms ) ) {
    // Esegui un ciclo e visualizzali tutti
    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
Commenti

Grazie, funziona! Però ho un altro problema - quando clicco sulla mia categoria, viene mostrato solo il titolo di un post. C'è un template specifico che devo avere per visualizzare i post per categoria? Scusa se sembro stupido, ma sono perso.

oksite oksite
1 dic 2017 12:30:48

Di nulla. Non è affatto stupido. Potrebbero esserci diverse ragioni. Una potrebbe essere che hai impostato i post per pagina a 1 nelle tue impostazioni di "Lettura" nella dashboard. Un altro problema potrebbe essere con il template. Prova a verificare se esiste taxonomy-your_taxonomy.php o taxonomy.php. Potresti anche avere un filtro pre_get_posts nel tuo file functions.php che limita i risultati.

Johansson Johansson
1 dic 2017 12:38:07

Ok, creare il template della tassonomia ha funzionato, quando clicco sulla categoria ottengo un elenco dei miei post. Ma usando il codice nel mio post originale, ottengo gli stessi prodotti indipendentemente da quale categoria clicco. Ad esempio, ho una categoria con 3 prodotti e quando la clicco vedo questi prodotti, ma vedo gli stessi prodotti quando clicco su una categoria diversa. Penso che devo usare l'ID della categoria, giusto?

oksite oksite
1 dic 2017 12:44:39

Sì, certo. Devi fare una tax_query se hai intenzione di usare il tuo codice. Dai un'occhiata alla classe WP_Query e non esitare a fare una nuova domanda se il problema persiste.

Johansson Johansson
1 dic 2017 14:12:06

Ciao Jack. Voglio davvero ringraziarti per tutto l'aiuto. Sono riuscito a ottenere il risultato finale che volevo. Un brindisi a te amico! :)

oksite oksite
1 dic 2017 14:14:46

come ottenere la tassonomia della categoria

Ravindrasinh Zala Ravindrasinh Zala
15 set 2020 11:53:54
Mostra i restanti 1 commenti