0

現在、私はOwlカルーセルにACFフィールドを追加しています。イメージを表示しながら作業を表示します。私は、自分のコードがリピーターからの結果をすべて1つずつではなく各スライドに吐き出すという問題を抱えています。以下はコードです(すべてがWordpressのACFフィールドに正しくリンクされています)と私はスライダがどのように見えるかのイメージを添付しました。ACFギャラリー内のACFリピーターが正しくレンダリングされない

どのように私はこれを修正することができますか?

<div class="owl-carousel" id="owl-single-example"> 
<?php foreach ($homepage_slideshow_gallery as $homepage_slideshow_gallery):?> 
    <div class="slide" style="background-image: url('<?php echo $homepage_slideshow_gallery['url']; ?>')" /> 
     <div class="container caption"> 

     <?php if(have_rows('homepage_slideshow_repeater')): ?> 
      <?php while(have_rows('homepage_slideshow_repeater')): the_row(); ?> 
      <p><?php the_sub_field('homepage_slideshow_repeater_company'); ?></p> 
      <h1 class="textblock"><span><?php the_sub_field('homepage_slideshow_repeater_title'); ?></h1> 
      <a class="btn" href="<?php the_sub_field('homepage_slideshow_repeater_url'); ?>">View Work</a> 
      <?php endwhile; ?> 
     <?php endif; ?> 

     </div> 
    </div> 
<?php endforeach;?> 

The error where all results from the repeater (Company name, title and URL) all get spit out into each slide, rather than one by one.

+1

Owlの正しい構造は何ですか?リピーターのすべてをスライドの中の同じコンテナに入れています...それが期待していることですか? – FluffyKitten

+0

@FluffyKittenそれは私が間違っていると思うところです。リピータが各スライドの結果を吐き出すように、コードをどのように構造化できますか? –

+1

それはフクロウに依存します! Owlのドキュメンテーションとサンプルを見て、それが何を期待しているか見てきましたか?また、私はあなたのACFフィールドの構造を理解していません - あなたのリピータフィールドはどのようにスライダイメージに関係していますか?現時点ではっきりとした関係はありませんか、それとも完全に分かれていますか? – FluffyKitten

答えて

1

作成する権利、あなたのループを得るために自分のことをより困難になってきたので、彼らは、独立したACFの分野であるため、あなたのイメージとキャプションの間には直接の関係はありませんその関連付けは正しく行われます。

別のギャラリーフィールドを使用する代わりに、 homepage_slideshow_repeaterリピーターフィールドにイメージフィールドを直接追加することをお勧めします。

1:リピーターを持っているあなたのフィールドグループを編集し、以下の設定で、画像のためにそれに別のサブフィールドを追加します。

  • フィールドタイプ:内容:イメージ

  • 戻り値:画像のURL

画像のURLだけを返すことで、それを背景画像のURLに直接使用できます。

2:次の編集自分のホームページとそのキャプション、タイトルなどを直接側面に沿ってあなたのリピータに

3に対応するスライダー画像を追加:すべてのために今すぐあなたのコードでは、あなたが一度だけループする必要があります関連情報は同じリピーター行にあります。これは私の頭&のトップがテストされていないだけ離れているが、それはあなたにいただきました!のアイデアを与える必要があることを

<?php if(have_rows('homepage_slideshow_repeater')): ?> 
    <div class="owl-carousel" id="owl-single-example"> 
    <?php while(have_rows('homepage_slideshow_repeater')): the_row(); ?> 

     /* get the image from the repeater - the content will be just the url so we can use it directly */ 
     <div class="slide" style="background-image: url('<?php the_sub_field('slide_image'); ?>')" /> 

      /* now add the caption etc for this image to the slide */ 
      <div class="container caption"> 
      <p><?php the_sub_field('homepage_slideshow_repeater_company'); ?></p> 
      <h1 class="textblock"><span><?php the_sub_field('homepage_slideshow_repeater_title'); ?></h1> 
      <a class="btn" href="<?php the_sub_field('homepage_slideshow_repeater_url'); ?>">View Work</a>  
      </div> 
     </div> 

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

注:この(画像のフィールド名「slide_image」を使用して)のようなものを使用します必須。

関連する問題