web-dev-qa-db-fra.com

Résultats inattendus avec des conditions à l'intérieur du modèle

Scénario: J'ai un modèle de partie loop-product.php que j'appelle de home.php, taxonomy.php et un modèle de page template-products.php. À l'intérieur de cette partie de modèle, le fichier loop-product.php définit le nombre de colonnes en vérifiant is_home() les conditions.

Problème: Le conditionnel fonctionne bien pour la page d'accueil, la page de taxonomie mais reste défini sur le modèle de page. Sur le produit, j'ai ajouté une classe columns-$cols afin que vous puissiez la vérifier sur le site. Son affichage columns-4 sur la page de modèle de produit où il est supposé afficher columns-3.

<?php
    $j = 1;
    if(is_home()){
        $cols = 4;
    }else{
        $cols = 3;
    }
    if(have_posts()):while(have_posts()):the_post();

        // getting thumbnail image here 
    ?>

            <div class="product-item <?php echo 'columns-'.$cols ?>" <?php if($j%$cols == 0){ echo 'style="margin-right:0;"'; } ?>>
              <a href="<?php the_permalink(); ?>">
                <span class="product-img">
                    <img src="<?php echo $img[0]; ?>" width="100" height="75" alt="<?php the_title(); ?>">
                </span>
                <span class="desc">
                    <h2><?php the_title(); ?></h2>
                <?php
                    if($price): ?>
                    <span class="price">Price: <?php echo $price; ?> BDT</span>
                <?php endif; ?>                    

                     </span>
                </a>
             </div>
             <?php if($j%$cols == 0){ echo '<div class="clear"></div>'; } ?>

             <?php $j++; endwhile; endif; ?>

                <div class="clear"></div>

Consultez le site ici http://computercarebd.com/ Appréciez votre temps. Merci!

Code de modèle de page: http://Pastebin.com/CzRgzzVF

1
Sisir

Pourquoi ne pas utiliser la classe body pour cibler ces éléments avec CSS. Vous pouvez faire quelque chose comme ceci et rendre votre PHP un peu plus propre.

.product-item{width:33%;}
.home .product-item{width:25%;}
2
Brian Fegter