簡體   English   中英

每x個帖子使用模數交替行和列

[英]Alternate row and column every x post using modulo

我正在嘗試使用模數實現每個x帖子的交替行和列。 並作為以下示例顯示結構。 顯示所有帖子,但不顯示2和3帖子結構。 看來計數器無法正常工作,並且模數問題。 感謝您的審查。

例如:

 // start for each     
 // 2 posts
        <div class="row">
         <div class= "col-md-6"></div>
         <div class= "col-md-6"></div>
        </div>

    // next 3 posts in different row 
    <div class="row">
      <div class= "col-md-4"></div>
      <div class= "col-md-4"></div>
      <div class= "col-md-4"></div>
    </div>

    // repeat this structure for all my posts so: 
    // 2 posts in a row 
    // 3 posts in a row
    // 2 posts in a row 
    // 3 posts in a row 
    // ... 
    // ...

-- end foreach -- 

這是我的代碼。

  <div class="wrapper container"> 
      <?php
       $count = 0;

     foreach(code) {
      if(!empty($listing_image_url)){     

        if ( $count % 5 === 0) : ?>
          <div class="row"> 
             <div class="col-md-6 list-column-block">
                  <ul>
              <li>
                <a href="<?php echo url($Url); ?>" class="listing__block__image">    
                  <div class="inner">
                    <?php if(!empty($listing_image_url)){ ?>                              
                      <img src="<?php echo $listing_image_url; ?>"/> 
                        <?php } ?>  
                          <div class="caption">
                            <div class="caption-inner">
                              <span class="caption-appeared">
                                <h5><span><?php print $Count; ?> homes</span></h5>
                              </span>
                              <span class="caption-des">
                                <?php print $title; ?></span><!--
                                 --><?php if ( $region ): ?><!--
                                 -->,<span class="caption-location">
                                      <?php print $region; ?>
                                      </span>
                                <?php endif; ?>
                            </div>
                          </div>
                       </div>
                    </a>              
                 </li>
               </ul>
              </div>
            </div>
            <?php endif;
            $count++; 
        if ($count % 5 === 1) :
          endif; 

        if ( $count % 5 === 2) : ?>
          <div class="row"> 
              <div class="col-md-4 list-column-block">
                    <ul>
              <li>
                <a href="<?php echo url($Url); ?>" class="listing__block__image">    
                  <div class="inner">
                    <?php if(!empty($listing_image_url)){ ?>                              
                      <img src="<?php echo $listing_image_url; ?>"/> 
                        <?php } ?>  
                          <div class="caption">
                            <div class="caption-inner">
                              <span class="caption-appeared">
                                <h5><span><?php print $Count; ?> homes</span></h5>
                              </span>
                              <span class="caption-des">
                                <?php print $title; ?></span><!--
                                 --><?php if ( $region ): ?><!--
                                 -->,<span class="caption-location">
                                      <?php print $region; ?>
                                      </span>
                                <?php endif; ?>
                            </div>
                          </div>
                       </div>
                    </a>              
                 </li>
               </ul>
             </div>
            </div>
          <?php endif;

            if ($count % 5 === 2 || $count % 5 === 3 || $count % 5 === 4) :
             endif; ?> 


       <?php } } ?> 

據我所知,您的代碼將在每次迭代中產生一個新行(單列)。

要創建所需的結構,可以使用一個臨時計數器。 我會給您一個快速的工作示例(簡化為基本示例)。 如您所見,如果我們有奇數行或偶數行,則僅使用取模運算符來確定。

我希望這有幫助。

    $posts      = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
    $count_rows = 1;
    $tmp_counter    = 1;
    $html           = "";

    foreach ($posts as $post) 
    {
        if ($tmp_counter == 1){
            $html .= '<div class="row">';   // create a new row on first run and after counter resets 
        }

        if ( $count_rows % 2 === 1) 
        {   
            // even row >> 2 Cols
            $html .= '<div class= "col-md-6">'.$post.'</div>';  // I would recommend to use a function to generate the post markup

            if ($tmp_counter == 2)
            {
                $html .= '</div>';  // close the row 
                $tmp_counter = 0;   // reset the temporary counter 
                $count_rows ++; // increase number of rows
            }
        }
        else
        {   
            // odd row >> 3 Cols
            $html .= '<div class= "col-md-4">'.$post.'</div>';  // I would recommend to use a function to generate the post markup

            if ($tmp_counter == 3)
            {
                $html .= '</div>';  // close the row 
                $tmp_counter = 0;   // reset the temporary counter 
                $count_rows ++; // increase number of rows
            }
        }

        $tmp_counter++;
    }
    if ($tmp_counter != 1){
        $html .= '</div>';  // close the last row
    }
    echo $html;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM