2016-10-04 94 views
0

因此,要詳細說明,我有11個帖子,並且在每個帖子中,我將圖像輸入到預先定製的字段窗體中。但是當我給他們打電話時,我從11個帖子中找回了11個結果。高級自定義字段保持返回相同的值

這是我正在與之合作。只是爲了告訴你這是在functiuons.php中,因爲我想將它作爲簡碼,所以我可以在多個帖子類型中使用它。

  function get_slider() { 
      $args = array(
      'post_type' => 'projekti', 
      'posts_per_page' => -1, 
        ); 
        $posts = get_posts($args); 

        ob_start(); 

        if($posts): ?> 
        <div class="slider_slick"> 
        <?php foreach($posts as $post): setup_postdata($post); ?> 
         <?php if(have_rows('slider')): ?> 
          <?php while(have_rows('slider')): the_row(); ?> 
           <?php // vars 
           $image = get_sub_field('image_slider'); 
           $link = get_sub_field('slider_link');      
           ?>  
           <div class="slide"> 
            <a href="<?php echo $link; ?>"> 
            <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt'] ?>" /> 
            </a> 
           </div> 

          <?php endwhile; ?> 
         <?php endif; ?>       
        <?php endforeach; ?> 
        <?php wp_reset_postdata(); ?> 
        </div> 
        <?php endif; 
        return ob_get_clean(); 
     } 
    add_shortcode ('slick_slider' , 'get_slider'); 

我在創建的模板上有幾乎相同的代碼,但那個工作正常,這個不是,我不知道爲什麼。

+0

嘗試使用'WP_QUERY'而不是'get_posts' – Noman

+0

試過了,但它沒有工作。感謝您的建議。 – Mark

+0

你有'slider'行嗎?請在'setup_postdata($ post)'後加'get_fields(get_the_ID());'的輸出;' – Noman

回答

0

我不得不

global $post; 

添加到我的函數的頂部爲它工作。無論如何,感謝您的幫助。

0

acf have_rows()函數的當前帖子的傳遞id。我已經使用$currentId = get_the_ID();,然後在需要的地方使用變量$ currentId。

 function get_slider() { 
     $args = array(
     'post_type' => 'projekti', 
     'posts_per_page' => -1, 
       ); 
       $posts = get_posts($args); 

       ob_start(); 

       if($posts): ?> 
       <div class="slider_slick"> 
       <?php foreach($posts as $post): setup_postdata($post); 
       $currentId = get_the_ID(); 
        ?> 
        <?php if(have_rows('slider', $currentId)): ?> 
         <?php while(have_rows('slider', $currentId)): the_row(); ?> 
          <?php // vars 
          $image = get_sub_field('image_slider'); 
          $link = get_sub_field('slider_link');      
          ?>  
          <div class="slide"> 
           <a href="<?php echo $link; ?>"> 
           <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt'] ?>" /> 
           </a> 
          </div> 

         <?php endwhile; ?> 
        <?php endif; ?>       
       <?php endforeach; ?> 
       <?php wp_reset_postdata(); ?> 
       </div> 
       <?php endif; 
       return ob_get_clean(); 
    } 
add_shortcode ('slick_slider' , 'get_slider'); 
+0

感謝這個想法,但它不起作用。 – Mark