2014-03-27 65 views
0

我愛jQuery,並不真正理解php。將多個數組傳遞給每個循環..我認爲

我正在製作帶有相冊的滑塊。到目前爲止,除了我現在試圖在每個循環中添加兩個數組到一個之外,這一切都非常好。至少我認爲這是最好的解決方案。

在我的代碼中,你可以看到我已經實現了我需要的6個自定義字段中的6個自定義字段的硬編碼圖像(我正在使用wordpress)。問題是,如果沒有六個圖像,那麼滑塊顯示一個空白圖像(因爲它存在,但沒有一個src)。我試圖用jquery刪除元素,但這並不好。這是我到目前爲止的代碼,也許有一些我錯過了,我似乎無法得到邏輯非常正確。

<?php 

        $args = array(
         'post_type'   => 'albums_gallery', 
        ); 

        $loop = new WP_Query($args); 
        while ($loop->have_posts()) : $loop->the_post(); 

        $album_name = get_the_ID(); 


        $image_1 = get_field('image_1'); 
        $image_1_url = $image_1['url']; 
        $image_1_caption = get_field('image_1_caption'); 

        $image_2 = get_field('image_2'); 
        $image_2_url = $image_2['url']; 
        $image_2_caption = get_field('image_2_caption'); 

        $image_3 = get_field('image_3'); 
        $image_3_url = $image_3['url']; 
        $image_3_caption = get_field('image_3_caption'); 

        $image_4 = get_field('image_4'); 
        $image_4_url = $image_4['url']; 
        $image_4_caption = get_field('image_4_caption'); 

        $image_5 = get_field('image_5'); 
        $image_5_url = $image_5['url']; 
        $image_5_caption = get_field('image_5_caption'); 

        $image_6 = get_field('image_6'); 
        $image_6_url = $image_6['url']; 
        $image_6_caption = get_field('image_6_caption'); 


       ?> 
        <div class="album album_<?php echo $album_name ?>"> 
         <div class="slider-wrapper theme-default"> 
          <div class="slider" class="nivoSlider"> 

           <!--<img src="<?php echo $image_1['url']; ?>" alt="<?php echo $image_1['alt']; ?>" title="<?php echo $image_1_caption; ?>" /> 
           <img src="<?php echo $image_2['url']; ?>" alt="<?php echo $image_2['alt']; ?>" title="<?php echo $image_2_caption; ?>" /> 
           <img src="<?php echo $image_3['url']; ?>" alt="<?php echo $image_3['alt']; ?>" title="<?php echo $image_3_caption; ?>" /> 
           <img src="<?php echo $image_4['url']; ?>" alt="<?php echo $image_4['alt']; ?>" title="<?php echo $image_4_caption; ?>" /> 
           <img src="<?php echo $image_5['url']; ?>" alt="<?php echo $image_5['alt']; ?>" title="<?php echo $image_5_caption; ?>" /> 
           <img src="<?php echo $image_6['url']; ?>" alt="<?php echo $image_6['alt']; ?>" title="<?php echo $image_6_caption; ?>" />--> 

           <?php 
            $images = array("$image_1_url","$image_2_url","$image_3_url","$image_4_url", "$image_5_url", "$image_6_url"); 
            foreach ($images as $image) { 
             if ($image != "") { 
              echo "<img src='"; 
              echo $image; 
              echo "' "; 
              echo "title='caption'"; 
              echo "/>"; 
             } 
            }; 
           ?> 

          </div> 
         </div> 
        </div> 

       <?php endwhile; wp_reset_query(); ?> 

我需要的圖片標題,並可能將鏈接添加到每個和if語句,走出我的深度作爲一個設計師小。

感謝您的任何幫助。

+0

這是可怕的代碼。如果你需要將圖像作爲一個數組,那麼首先將它們添加到數組中,而不是使用其中包含數字的變量名。建議:不要使用數組,而是在要輸出圖像的位置使用從1到6的'for'循環,並通過將循環計數器放入參數字符串中來在循環內部調用'get_field' 。如果該方法返回實際圖像,則輸出它。 – CBroe

回答

2

這是你所需要的

<div class = "slider-wrapper theme-default"> 
    <div class = "slider" class = "nivoSlider"> 
     <?php 

     $images = Array(); 
     for($i = 1; $i <= 6; $i++) { 
      $image = get_field("image_{$i}"); 
      if(!$image || !$image['url']) { 
       break; 
      } 
      $caption = get_field("image_{$i}_caption"); 
      ?> 
       <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" title="<?php echo $caption; ?>" /> 
      <?php 
     } 

     ?> 
+0

謝謝彼得,你大俠! – vincentieo