2012-01-15 17 views
1

誰かが私に助けてくれたかどうかは、あなたがどのように知っていれば非常に簡単だろうと思った。Wordpress - ループ内のリピータフィールドからわずか4枚の画像を引き出す

私はゲームベースのウェブサイトを作成しています。私はすべてのゲームのリストが表示されるディレクトリページで作業しています。私は 'Advanced Custom Fields'というプラグインを使用して、各ゲームのすべてのカスタムフィールドを作成しています。別のカスタムゲームのフィールド(タイトル、スクリーンショット、説明、ダウンロードボタンなどを求めて、このループ内

<?php $loop = new WP_Query(array('post_type' => 'games', 'posts_per_page' => 10)); ?> 
<?php while ($loop->have_posts()) : $loop->the_post(); ?> 

そして - :私はゲームごとにプルするループを実行している時点では

...)。しかし、私はスクリーンショットになると問題があります。私は喜んですべてのスクリーンショットをつかむことができますが、私はちょうど4を抜き出したいと思います。私はすべてのスレッドを検索し、ドキュメントを見て、googleを押しました。 「私はまだ成功を達成していない試みた:(

スクリーンショットを引き出すための上記のループ内で私の現在のコードがありまし: -

​​

だけに私の結果を制限する方法はありますすべての利用可能なスクリーンショットを表示する代わりに合計で4つのランダムな4つのオプションがありますが、それ以上の選択肢がありますが、それほど重要な選択肢はありません。

私が今までに成功しなかったもののいくつかよりもはるかに簡単です。

何か助けていただきありがとうございました。

乾杯

ロブ

答えて

1

私はあなたが使用しているプラ​​グインについてはあまり知りません。しかし、簡単な解決策は、このようなカウンター使用して次のようになります。

<?php $i=0; ?> 
<?php while (the_repeater_field('screenshots')): ?> 

<li><a href="<?php the_sub_field('large_screenshot'); ?>" data-fancybox-group="button" class="fancybox"><img src="<?php the_sub_field('thumbnail_screenshot'); ?>" title="<?php the_sub_field('screenshot_title'); ?>"/></a></li> 

<?php if($i<4) $i++; 
     else break; ?> 
<?php endwhile; ?> 
+0

多くのご返信ありがとうございました。 悲しいことに、上記のようにページを読み込まないと、私はグーグルでこの回答を導き出しましたが、実際の結果を出すことはできませんでした。 ?最後のステートメントでは、ページが読み込まれないようにします。ページは移動しますが、明らかに必要なものを達成せず、実際には1つの結果しか表示しません。 上記の問題を解決するためのアイデアはありますか? ありがとうございます。 Rob –

+0

アップデートをお試しください。 – bingjie2680

+0

もう一度お返事ありがとうございます。 ページがロードされていて、スクリーンショットには影響しますが、ダウンロードボタン(最終的には)にも影響しています。ループ。だから、この1つのセクションにこのステートメントを入れる方法はありますか? したがって、数字($ i <4)を変更すると、アップロードされるスクリーンショットの数とダウンロードボタンの数に基づいて異なる結果が生成されます。 たとえば($ i <3)を入力します。関連するダウンロードボタンが2つある場合は4つのスクリーンショットを表示しますが、確かにこれには論理がありますが、私はその周りに私の頭を包み込むことはできません –

0

私は好奇心はあなたが定義することにより、実行するための1つの以上のループを得た方法へとそれはあなたが経験しているように動作しますが、何らかの理由でなければならないときI同じ概念を投稿する私は10の画像があっても1つの結果しか出せない。

while(the_repeater_field('horse_images')): 
    $image_id = get_sub_field('image'); 
    $image_src = wp_get_attachment_image_src($image_id,medium); 
    echo '<img src="'.$image_src[0].'">'; 
endwhile; 

あなたのようにコードを変更した場合、それがうまくいくかしらと& & $ I < = 4

<?php if(get_field('screenshots')): ?> 
<?php $i = 0; ?> 
<ul class="screenshots"> 
    <?php while (the_repeater_field('screenshots') && $i <= 4): ?> 

    <li><a href="<?php the_sub_field('large_screenshot'); ?>" data-fancybox-group="button" class="fancybox"><img src="<?php the_sub_field('thumbnail_screenshot'); ?>" title="<?php the_sub_field('screenshot_title'); ?>"/></a></li> 

    $i++ 
<?php endwhile; ?> 

+0

私は自分の問題を考え出しました。 1つのフィールドを設定し、行の制限を10に設定します(これは設定で行っていますが、私がテストしている投稿の混乱のために1行しか挿入しないので問題はありません。 小さなインサートで問題を解決できたらうれしいです。 – Xtremefaith

0

ルック:

<?php if(have_rows('gallery_img')): ?> 
    <div class="gl-images"> 
    <div class="flexslider"> 
     <ul class="slides"> 
     <?php $i=0; ?> 
     <?php while(have_rows('gallery_img')): the_row(); 
     // vars 
     $image = get_sub_field('img_item'); 
     ?> 
     <?php if($image): ?> 
     <li class="slide"> 
      <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt'] ?>" /> 
     </li> 
     <?php endif; ?> 
     <?php if($i>1) $i++; 
     else break; 
     ?> 
    <?php endwhile; ?> 
    </ul> 
    </div> 
    </div> 
<?php endif; ?> 
+0

あなたの答えをもう少し詳しく説明できますか? – Skandix

関連する問題