Custom Field Suite でループ項目のn番目の画像があるかどうかでの条件分岐での不具合について
-
カスタム投稿の投稿ページで Custom Field Suite を使い、画像をループで取得しています。
詳細ページでは、画像をスライド表示する為、bxSlider を使用しています。
bxSlider でスライド画像のサムネイルが表示されるように以下のように記述しておりましたが、画像が1枚だけの時は、サムネイルが表示されないようにしたく、記述を変更しました。●変更前
<?php if(!empty( CFS()->get( 'works_slide_grp' ) )) : ?> <div class="bxslider-worksWrap"> <ul class="bxslider-works"> <?php $works_slide_grp = CFS()->get( 'works_slide_grp' ); foreach($works_slide_grp as $works_slide) { $works_slide_img_id = $works_slide['works_slide_img']; $works_slide_img_value = wp_get_attachment_image_src( $works_slide_img_id, 'large' ); echo '<li><img src="'.$works_slide_img_value[0].'" alt=""></li>'; } ?> </ul> <div class="bx-pager clearfix"> <?php $works_slide_grp2 = CFS()->get( 'works_slide_grp' ); $i = 0; foreach($works_slide_grp2 as $works_slide2) { $works_slide_img_id2 = $works_slide2['works_slide_img']; $works_slide_img_value2 = wp_get_attachment_image_src( $works_slide_img_id2, 'thumbnail' ); echo '<a data-slide-index="'.$i.'" href=""><img src="'.$works_slide_img_value2[0].'" alt=""></a>'; $i++; } ?> </div> </div> <?php endif; ?>
●変更後
<?php if(!empty( CFS()->get( 'works_slide_grp' ) )) : ?> <div class="bxslider-worksWrap"> <ul class="bxslider-works"> <?php $works_slide_grp = CFS()->get( 'works_slide_grp' ); foreach($works_slide_grp as $works_slide) { $works_slide_img_id = $works_slide['works_slide_img']; $works_slide_img_value = wp_get_attachment_image_src( $works_slide_img_id, 'large' ); echo '<li><img src="'.$works_slide_img_value[0].'" alt=""></li>'; } ?> </ul> <?php $works_slide_grp3 = CFS()->get( 'works_slide_grp' ); $works_slide_img_no1 = $works_slide_grp3[1]['works_slide_img']; if (!empty($works_slide_img_no1)) : ?> <div class="bx-pager clearfix"> <?php $works_slide_grp2 = CFS()->get( 'works_slide_grp' ); $i = 0; foreach($works_slide_grp2 as $works_slide2) { $works_slide_img_id2 = $works_slide2['works_slide_img']; $works_slide_img_value2 = wp_get_attachment_image_src( $works_slide_img_id2, 'thumbnail' ); echo '<a data-slide-index="'.$i.'" href=""><img src="'.$works_slide_img_value2[0].'" alt=""></a>'; $i++; } ?> </div> <?php endif; ?> </div> <?php endif; ?>
以下の部分が追加したコードです。
<?php $works_slide_grp3 = CFS()->get( 'works_slide_grp' ); $works_slide_img_no1 = $works_slide_grp3[1]['works_slide_img']; if (!empty($works_slide_img_no1)) : ?>
記述の変更後、新たに投稿したものは画像が1枚だけの時は、サムネイルが表示されず、画像が2枚以上の場合のみサムネイルが表示されるというように正常に動作しています。
しかし、記述変更前の投稿で、タイトルが同じものがいくつかあり、それらに関して画像が複数あるのにサムネイルが表示されないという不具合が出ています。
スラッグ が以下のようになっており、
1. https://www.xxx.com/works/test/
2. https://www.xxx.com/works/test-2/
3. https://www.xxx.com/works/test-3/
1の方に関しては正常にだが、2と3の方で不具合が出ている、というような状況です。
尚、投稿には複製出来るようDuplicate Postを使用しており、不具合の出ている投稿をコピーし、新たに画像を登録し直しても、不具合は直りません。
上記以外にも、タイトルが同じものに関して、画像が1枚の場合でもサムネイルが表示されてしまっていたものがあり、それに関しては画像を登録し直したらサムネイルの表示が消えました。テンプレートの記述変更後に関しては、タイトルが同じものでも正常に動作するのですが、具体的に内部のどの部分で不具合が出ているかなどご教授いただけますでしょうか?
新たに追加したコードの記述に問題があるのでしょうか?どうぞよろしくお願いいたします。
- トピック「Custom Field Suite でループ項目のn番目の画像があるかどうかでの条件分岐での不具合について」には新たに返信することはできません。