2016-04-27 9 views
0

Ich erstelle derzeit einen Schieberegler, der aus Produkten besteht. Zur Zeit habe ich es geschafft alle 2 Artikel in div mit diesem Code zu wickeln:PHP Wrapping benutzerdefinierte Artikel innerhalb der Schleife Wordpress

<div class="frame crazy" id="crazy"> 
    <div class="slidee"> 
    <?php if ($myposts->have_posts()) : 
    $i = 0; 
    while ($myposts->have_posts()) : $myposts->the_post();  
    $image = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_id()), 'single-post-thumbnail'); 
    $value = get_field("alternate_image", get_the_id()); 
    $titl = get_field("title", get_the_id()); 
    $big = get_field("big_section", get_the_id()); 
    if ($i % 2 == 0) : ?> 
     <div class="op" <?if ($big==1){?>style="width:850px !important;"<?}?>> 
     <?php endif; 
     $_pf = new WC_Product_Variable(get_the_id()); 
     $variations =  $_pf->get_available_variations(); 
     $vrt = count($variations); 
     ?> 
     <div data-hv="<?php echo $value; ?>" data-titleContent="<a href='<?php echo get_the_permalink();?>'><?php echo get_the_title(); ?></a>" data-tipso-content="<span class='varaition'>this item has <?php echo $vrt; ?> variation(s)</span><a class='bty' href='<?php echo get_the_permalink(); ?>'>details</a>" data-url="<? echo the_permalink(); ?>" class="cola <?php if($big==1){?>big<?}?>" style="background-image: url('<?php echo $image[0]; ?>')" data-mg="<?php echo $image[0];?>"> 
     <?php if($titl==1) { ?> 
     <h2><a href='<?php echo get_the_permalink();?>'><?php echo get_the_title(); ?></a></h2> 
     <p class="slu"><a href='<?php echo get_the_permalink();?>'>shop now ></a> </p> 
     <?php } ?> 
      </div> 
     <?php if ($i % 2 != 0) : ?> 
     </div> 
     <?php endif; ?> 

     <?php $i++; endwhile; ?> 

      <?php if ($i % 2 != 0) : ?> 
       </div> 
      <?php endif; ?> 

    <?php endif;?> 
    </div> 
    </div> 

Dieser Code alle zwei Produkte wie diese Wraps:

<div class="op"> 
<div class="product1"> 
//content 
</div> 
<div class="product2"> 
//content 
</div> 
</div> 
<div class="op"> 
<div class="product3"> 
//content 
</div> 
<div class="product4"> 
//content 
</div> 
</div> 

Aber ich brauche benutzerdefinierte Anzahl von Stellen holen nach Produktmeta. So dass die Anzahl der Produkte kann wie folgt variieren:

<div class="op"> 
<div class="product1"> 
//content 
</div> 
<div class="product1"> 
//content 
</div> 
<div class="product1"> 
//content 
</div> 
<div class="product1"> 
//content 
</div> 
<div class="op"> 
<div class="product1"> 
//content 
</div> 
<div class="product1"> 
//content 
</div> 
</div> 

Ist es möglich, Produkt Meta oder eine bessere Idee zu verwenden?

Antwort

0

diese Zeile im Code:

if ($i % 2 == 0) : ?> 

enthält die Schleifennummer ändern, dass eine Variable zu sein und diese Variable aus den Meta-Daten gesetzt, so:

$loopmeta=metadata_retriever(); 
if ($i % $loopmeta == 0) : ?> 

Sie müssen Schreiben Sie die metadata_retriever() Funktion und setzen Sie einige Fehlerprüfung um den Abruf der $loopmeta Variable, um sicherzustellen, dass es als eine gültige Ganzzahl zurückkommt (nicht 0, noch 12,735 zum Beispiel :-))

+0

Ich habe versucht, dies zu verwenden, aber wenn ich den Wert von 2 ändern, funktioniert es nicht. Es funktioniert nur für 2 Produkte. Ich erstelle einen Schieberegler wie [this] (http://www.gucci.com/int/category/m/travel_bags___luggage#look86083lookA113), der aus dynamischer Anzahl von Elementen besteht! –

+0

Also, haben Sie den Wert von '2' überall in Ihrem Code geändert, den Sie verwenden, um die Variable Anzahl der Elemente Wert? wie Sie es 3 mal in dem Code überprüfen, den Sie gepostet haben. Ich würde empfehlen, dies ebenfalls zu refactoring, so dass Sie PHP und HTML nicht zusammen mischen. Verwenden Sie Funktionen, um die Ausgabezeichenfolgen zu erstellen und sie miteinander zu verketten, und drücken Sie dann am Ende "$ str". Sie werden dann Fehler und Optimierungsmöglichkeiten viel klarer sehen. – Cwissy

+0

ja ich habe den Wert geändert aber es funktioniert nicht. –

Verwandte Themen