お世話になっております。良くわからないので質問させていただきます。
WORDPRESsのプラグインSmart Custom Fieldsで投稿画像を繰り返しにて出力
以下の内容にて3カラムで登録した画像はすべて出力できました。
これを登録した画像の最初の3枚のみ出力したいと考えております。
Custom Post Type UIプラグイン
カスタム投稿名:work
タクソノミー名:work_cate
smart custom fieldsプラグイン
グループ名=works_album
画像写真=works_photo
画像タイトル=works_photo_title
画像の説明=works_photo_description
PHP
1<ul> 2<?php 3$args = array( 4 'post_type' => 'work', 5 'posts_per_page' => -1, 6 'work_cate' => $cat->slug 7); 8$my_posts = get_posts( $args ); 9if ( $my_posts ) { // 該当する投稿があったら 10 foreach ( $my_posts as $post ) : 11 setup_postdata( $post ); 12 ?> 13 14 <li> 15 16 <h1 class="h3_title"><?php the_title(); ?></h1> 17 <?php the_content(); ?> 18 19 20 21 <ul class="three_column"> 22 23 <?php 24$imggroup = SCF::get('works_album'); 25foreach ($imggroup as $fields ) { 26 $imgurl = wp_get_attachment_image_src($fields['works_photo'] , 'full'); 27?> 28<li> 29<img src="<?php echo $imgurl[0]; ?>"></a> 30 <h2><?php echo nl2br($fields['works_photo_title']); ?></h2> 31 <div class="photo_description"><?php echo nl2br($fields['works_photo_description']); ?></div></li> 32<?php } ?> 33 34 </ul> 35 36 </li> 37 38 39 <?php 40 endforeach; 41} else { 42 echo 'このカテゴリに投稿はありません'; 43} 44wp_reset_postdata(); 45?> 46 47</ul>
その後、上記コードだとwork_albumの画像がすべて出力されてしまうため
画像の枚数制限をしたいと考えました。(記事タイトル・本文はそのままの出力で smart cutom Fieldsに登録した画像の最初の3枚のみを表示)
ググってみたところbreakを使えばいいという記事を見つけたので
見よう見まねでコードを書いてみました。
PHP
1<ul> 2<?php 3$args = array( 4 'post_type' => 'work', 5 'posts_per_page' => -1, 6 'work_cate' => $cat->slug 7); 8$my_posts = get_posts( $args ); 9if ( $my_posts ) { // 該当する投稿があったら 10 foreach ( $my_posts as $post ) : 11 setup_postdata( $post ); 12 ?> 13 14 <li> 15 16 <h1 class="h3_title"><?php the_title(); ?></h1> 17 <?php the_content(); ?> 18 19 20 21 <ul class="three_column"> 22 23 <?php 24$imggroup = SCF::get('works_album'); 25$i = 0; 26foreach ($imggroup as $fields ) { 27 $imgurl = wp_get_attachment_image_src($fields['works_photo'] , 'full'); 28 if($i >= 3){ 29 break; 30?> 31<li> 32<img src="<?php echo $imgurl[0]; ?>"></a> 33 <h2><?php echo nl2br($fields['works_photo_title']); ?></h2> 34 <div class="photo_description"><?php echo nl2br($fields['works_photo_description']); ?></div></li> 35<?php $i++; 36} ?> 37 38 </ul> 39 40 </li> 41 42 43 <?php 44 endforeach; 45} else { 46 echo 'このカテゴリに投稿はありません'; 47} 48wp_reset_postdata(); 49?> 50 51</ul> 52 53
これで実行したところ
syntax error, unexpected 'endforeach' (T_ENDFOREACH) in
のエラーが出ました。
文法が違うため出たエラーだと思いますが
当方PHPの知識が乏しくどのように記載していいかよくわかりません。
大変お手数ですがどなたかご教授をいただけますと助かります。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/17 19:33