Question

J'ai un modèle de page personnalisé qui boucle dans tous les messages personnalisés avec le post_type de « product_listing » ET la taxonomie personnalisée « product_cat » de « chemises » et renvoie 4 messages par page (comme on le voit ci-dessous:)

<?php $loop = new WP_Query( array( 'post_type' => 'product_listing', 'product_cat' => 'shirts', 'posts_per_page' => 4 ) ); ?>

Il est de la responsabilité du client de gérer ces catégories. Je voudrais assigner une variable à l'affichage à la place de « chemises » pour que je n'ai pas modifier le modèle chaque fois que le client ajoute une nouvelle catégorie de produits (tels que des chaussures, pantalons, etc.).

Je ne suis pas un programmeur par tout moyen. Quelqu'un at-il un bout de code qui fonctionnerait pour cela? Ou peut-être un article que je puisse en savoir plus sur l'attribution des variables dynamiques dans la boucle? Merci!

Était-ce utile?

La solution 2

Apparemment, je devais boucler la fonction pour définir la variable:

<!-- BEGIN CODE FOR PRODUCT AREA -->
   <?php $prod_cats = get_terms('product_cat');
   foreach ($prod_cats as $prod_cat) {
      $cat_name = $prod_cat->name; ?>
        <div id="products">
        <!-- post begin -->
        <?php $loop = new WP_Query( array( 'post_type' => 'product_listing', 'posts_per_page' => 4, 'product_cat' => $cat_name ) ); ?>
        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
        <div class="product-tease" id="post-<?php the_ID(); ?>">
            <div class="upper">
                <h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
                <p align="center"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php echo catch_that_image() ?>" /></a></p>
                <?php the_excerpt('Read the rest of this entry &raquo;'); ?>
            </div>
            <span class="btn-readon"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">Read On</a></span>
            </div>
        <?php endwhile; ?>
        <br clear="all" />
        <!-- post end -->
        <br clear="all" />
          <?php wp_reset_query(); ?>
          <?php rewind_posts(); ?>
        </div>
   <?php } // End foreach $prod_cats ?>

Autres conseils

Vous pourriez laisser votre client ajouter la catégorie via un champ personnalisé.

<?php $loop = new WP_Query( array( 'post_type' => 'product_listing', 'product_cat' => get_post_meta($post->ID, 'product_cat', true), 'posts_per_page' => 4 ) ); ?>

Cela devrait fonctionner si votre client ajoute une valeur de champ personnalisé pour la touche « product_cat ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top