使用转发器字段在分离的div上显示多个图像

时间:2012-10-16 17:50:31

标签: php jquery ajax wordpress plugins

我正在尝试使用ACF的转发器字段显示带有图像的div列表。

这是我正在使用的代码:

<?php $query = new WP_Query( 'post_type=artworks_post&posts_per_page=-1&order=DESC' ); ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>

<?php 
$slides = get_field('project_thumbnails');  // Grabs the array

    // Check if there is any data in the array before looping
    if($slides) {
    echo '<div id="project_slider" class="item">';
    foreach($slides as $s) {
        echo '<a href="#">';
        echo '<img src="'.$s['project_thumb'].'" alt="" />';
        echo '</a>';
    }
       echo '<div class="art_title">';
       echo '<p>SWEET LIFE2</p>';
       echo '</div>';
       echo '<div class="mask">';
       echo '</div>';
    }

?>

<?php endwhile; // end of the loop. ?>

这个问题在于它显示同一个div中的所有图像,而不是在新div中显示转发器字段的每个图像。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

我不是一个PHP专家但是,我认为只是缺少第一个div的结束标签,我也会在循环中放入另一个div,它看起来像这样:

        <?php  $slides = get_field('project_thumbnails');  
            // Grabs the array      
           // Check if there is any data in the array before looping
             if($slides) {     
                //we need to close this div
               echo '<div id="project_slider" class="item">';     
               foreach($slides as $s) {  
                      echo '<div class="aimagediv" >'; //adding the start tag of the div
                      echo '<a href="#">';          
                      echo '<img src="'.$s['project_thumb'].'" alt="" />';
                      echo '</a>';
                      echo '</div>'; //CLOSING THE DIV JUST ADDED     
                     }        
                      echo '<div class="art_title">';        
                      echo '<p>SWEET LIFE2</p>';        
                      echo '</div>';        
                      echo '<div class="mask">';        
                      echo '</div>';  

                      echo '</div>'; //closing the first div,not sure if you want this, its optional
                 }  

    ?>  <?php endwhile; // end of the loop. ?> 

另一个替代方案是这个(只是弄清楚你期望得到的布局是什么):

<?php  $slides = get_field('project_thumbnails');  
                // Grabs the array      
               // Check if there is any data in the array before looping
                 if($slides) {     
                    //we need to close this div

                   foreach($slides as $s) {  
                          echo '<div id="project_slider" class="item">';  
                          echo '<a href="#">';          
                          echo '<img src="'.$s['project_thumb'].'" alt="" />';
                          echo '</a>';
                          echo '</div>'; //CLOSING THE DIV JUST ADDED     
                         }        
                          echo '<div class="art_title">';        
                          echo '<p>SWEET LIFE2</p>';        
                          echo '</div>';        
                          echo '<div class="mask">';        
                          echo '</div>';  
                     }  

        ?>  <?php endwhile; // end of the loop. ?> 

希望这就足够了。