Cum să listezi categoriile unei taxonomii personalizate?

1 dec. 2017, 11:49:53
Vizualizări: 37K
Voturi: 6

Am un tip de postare personalizat (CPT) care conține produse și o taxonomie care conține termenii produselor. Trebuie să afișez acești termeni pe pagina 'Produse' și când se face click pe un anumit termen, trebuie să afișeze produsele care aparțin acelui termen.

Apropo, când fac click pe 'vizualizare' pentru un anumit termen, afișează doar titlul unui singur produs. Am creat CPT-ul și taxonomia folosind plugin-ul CPT UI.

Aici este codul fișierului meu template page-products.php (care listează toate produsele):

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

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

<!--Deschiderea containerului sau wrapper-ului în afara buclei-->
<div class="container my-container">
<!--începe bucla-->
   <?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
Comentarii

Acest lucru se întâmplă automat dacă utilizați interogarea principală în șabloanele corecte. Verificați Ierarhia de șabloane pentru a vedea șabloanele necesare. Arhivele de tip post/taxonomie nu trebuie să fie, și nu ar trebui să fie, implementate ca șabloane de pagină.

Jacob Peattie Jacob Peattie
1 dec. 2017 11:51:19

Puteți detalia, vă rog? Ar trebui să interogez termenii de taxonomie în pagina mea page-products.php mai întâi, nu?

oksite oksite
1 dec. 2017 12:06:56

Nu. Nu ar trebui să existe niciun șablon de pagină sau interogări secundare.

Jacob Peattie Jacob Peattie
1 dec. 2017 12:44:48
Toate răspunsurile la întrebare 1
6
14

Pentru a obține o listă a taxonomiilor personalizate, puteți utiliza funcția get_terms() pentru a crea o buclă:

// Obține termenii taxonomiei
$terms = get_terms(
    array(
        'taxonomy'   => 'your-taxonomy',
        'hide_empty' => false,
    )
);

// Verifică dacă există termeni
if ( ! empty( $terms ) && is_array( $terms ) ) {
    // Rulează o buclă și afișează toți termenii
    foreach ( $terms as $term ) { ?>
        <a href="<?php echo esc_url( get_term_link( $term ) ) ?>">
            <?php echo $term->name; ?>
        </a><?php
    }
} 
1 dec. 2017 12:24:19
Comentarii

Mulțumesc, funcționează! Totuși am o altă problemă - când dau click pe o categorie, apare doar titlul unui singur articol. Există vreun șablon specific care să afișeze articolele pe categorii? Scuze dacă sună prostesc, dar sunt pierdut.

oksite oksite
1 dec. 2017 12:30:48

Cu plăcere. Nu e deloc prostesc. Pot fi mai multe cauze. Una ar putea fi că ai setat "Articole pe pagină" la 1 în setările de "Citire" din panoul de administrare. Altă problemă ar putea fi cu șablonul. Încearcă să verifici dacă există taxonomy-your_taxonomy.php sau taxonomy.php. S-ar putea să ai și un filtru pre_get_posts în fișierul functions.php care limitează rezultatele.

Johansson Johansson
1 dec. 2017 12:38:07

Ok, crearea șablonului de taxonomie a funcționat, când apăs pe categorie primesc o listă cu articolele mele. Dar folosind codul din postarea mea originală, primesc aceleași produse indiferent pe ce categorie dau click. De exemplu, am o categorie cu 3 produse și când dau click pe ea le văd, dar văd aceleași produse când dau click pe o altă categorie. Cred că trebuie să folosesc ID-ul categoriei, nu?

oksite oksite
1 dec. 2017 12:44:39

Da, desigur. Trebuie să folosești un tax_query dacă intenționezi să-ți scrii propriul cod. Aruncă o privire în clasa WP_Query și nu ezita să pui o nouă întrebare dacă problema persistă.

Johansson Johansson
1 dec. 2017 14:12:06

Salut Jack. Vreau să-ți mulțumesc din suflet pentru toată ajutorul. Am reușit să obțin rezultatul dorit. Noroc și succes în continuare! :)

oksite oksite
1 dec. 2017 14:14:46

cum să obții taxonomia categoriei

Ravindrasinh Zala Ravindrasinh Zala
15 sept. 2020 11:53:54
Arată celelalte 1 comentarii