web-dev-qa-db-fra.com

Lien de sortie vers la catégorie à partir de la boucle WP_Query des produits woocommerce

J'ai un WP_Query qui génère des produits en vedette. Pour chaque produit, j'aimerais également créer un lien vers la catégorie de ce produit, mais je ne sais pas comment.

Je pense que cela va être ma réponse, mais je ne suis pas sûr de savoir comment mettre tout cela ensemble. Comment obtenir un lien de catégorie sans interrogation de base de données

Ma question jusqu'à présent est:

<?php
  $args = array(
    'post_type' => 'product',
    'tax_query' => array(
      array(
        'taxonomy' => 'product_visibility',
        'field'    => 'name',
        'terms'    => 'featured',
        'operator' => 'IN'
      ),
    ),
    'posts_per_page' => 8
  );
  $loop = new WP_Query( $args ); ?>

<ul class="product-list">

  <?php while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
  <li class="product-list__item">

    <a href="<?php echo get_permalink( $loop->post->ID ) ?>"
      <?php the_title(); ?>
    </a>

    Link to the product category here!

Toute aide est très appréciée.

1
designlobby

Vous pouvez utiliser get_the_term_list() pour générer une liste de liens vers des catégories de produits, séparés par des virgules:

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <li class="product-list__item">
        <a href="<?php the_permalink() ?>">
            <?php the_title(); ?>
        </a>

        <?php echo get_the_term_list( get_the_ID(), 'product_cat', '', ', ' ); ?>
    </li>
<?php endwhile; ?>

Notez que lorsque vous êtes dans la boucle (c'est-à-dire entre $loop->the_post(); et endwhile), vous n'avez pas besoin de passer un ID à get_permalink(), vous pouvez simplement utiliser the_permalink().

De plus, dans votre code, il vous manque le dernier > de la balise d'ancrage d'ouverture, assurez-vous de résoudre ce problème.

0
Jacob Peattie