前提
wordpressでカスタム投稿の個別ページを作っています。その中でslickの二段サムネイルにカスタムフィールドを当てています
カスタムフィールド出力(空の場合はノーイメージの画像を出す)の同一の作業(8回分)をfor文にまとめたいのですがfor文にするとカスタムフィールドの値が全て空と認識されてしまいます。
どなたかお助け下さい。
(本当なら、一番最初の画像だけはカスタムフィールドに登録された画像が出力されるのが正しく、他はノーイメージ画像が出てくる)
現在は、ページのフッター近くに<div class="phptest"></div>という要素を作りそこでテストをしています。
php(8回分同じような作業をしているのでfor文にまとめたい)
1 <div class="thumbnail"> 2 <div class="thumbnail-img"> 3 <?php $value = get_post_meta($post->ID, 'pic1', true);?> 4 <?php if(empty($value)):?> 5 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 6 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 7 <?php else:?> 8 <!--●値が有る場合に表示されます。--> 9 10 <?php 11 $pic=get_field('pic1'); 12 $pic_url=$pic['sizes']['large']; 13 ?> 14 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 15 16 17 <?php endif;?> 18 19 </div> 20 <div class="thumbnail-img thumbnail-img2"> 21 <?php $value = get_post_meta($post->ID, 'pic2', true);?> 22 <?php if(empty($value)):?> 23 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 24 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 25 <?php else:?> 26 <!--●値が有る場合に表示されます。--> 27 28 <?php 29 $pic=get_field('pic2'); 30 $pic_url=$pic['sizes']['large']; 31 ?> 32 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 33 34 35 <?php endif;?> 36 </div> 37 <div class="thumbnail-img thumbnail-img3"> 38 <?php $value = get_post_meta($post->ID, 'pic3', true);?> 39 <?php if(empty($value)):?> 40 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 41 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 42 <?php else:?> 43 <!--●値が有る場合に表示されます。--> 44 45 <?php 46 $pic=get_field('pic3'); 47 $pic_url=$pic['sizes']['large']; 48 ?> 49 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 50 51 52 <?php endif;?> 53 </div> 54 <div class="thumbnail-img thumbnail-img4"> 55 <?php $value = get_post_meta($post->ID, 'pic4', true);?> 56 <?php if(empty($value)):?> 57 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 58 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 59 <?php else:?> 60 <!--●値が有る場合に表示されます。--> 61 62 <?php 63 $pic=get_field('pic4'); 64 $pic_url=$pic['sizes']['large']; 65 ?> 66 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 67 68 69 <?php endif;?> 70 </div> 71 <div class="thumbnail-img thumbnail-img5"> 72 <?php $value = get_post_meta($post->ID, 'pic5', true);?> 73 <?php if(empty($value)):?> 74 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 75 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 76 <?php else:?> 77 <!--●値が有る場合に表示されます。--> 78 79 <?php 80 $pic=get_field('pic5'); 81 $pic_url=$pic['sizes']['large']; 82 ?> 83 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 84 85 86 <?php endif;?> 87 </div> 88 <div class="thumbnail-img thumbnail-img6"> 89 <?php $value = get_post_meta($post->ID, 'pic6', true);?> 90 <?php if(empty($value)):?> 91 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 92 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 93 <?php else:?> 94 <!--●値が有る場合に表示されます。--> 95 96 <?php 97 $pic=get_field('pic6'); 98 $pic_url=$pic['sizes']['large']; 99 ?> 100 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 101 102 103 <?php endif;?> 104 </div> 105 <div class="thumbnail-img thumbnail-img7"> 106 <?php $value = get_post_meta($post->ID, 'pic7', true);?> 107 <?php if(empty($value)):?> 108 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 109 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 110 <?php else:?> 111 <!--●値が有る場合に表示されます。--> 112 113 <?php 114 $pic=get_field('pic7'); 115 $pic_url=$pic['sizes']['large']; 116 ?> 117 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 118 119 120 <?php endif;?> 121 </div> 122 <div class="thumbnail-img thumbnail-img8"> 123 <?php $value = get_post_meta($post->ID, 'pic8', true);?> 124 <?php if(empty($value)):?> 125 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 126 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 127 <?php else:?> 128 <!--●値が有る場合に表示されます。--> 129 130 <?php 131 $pic=get_field('pic8'); 132 $pic_url=$pic['sizes']['large']; 133 ?> 134 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 135 136 137 <?php endif;?> 138 </div> 139 </div>
該当のソースコード(こうするとカスタムフィールドの値が全て空と認識されてノーイメージ画像が出てしまう。)
php
1<div class="phptest"> 2 <?php 3 for($i = 1;$i < 9;$i++) : ?> 4 <div class="thumbnail-img thumbnail-img7"> 5<p>ppp<?php echo $i; ?></p> 6 <?php $value = get_post_meta($post->ID, 'pic{$i}', true);?> 7 <?php if(empty($value)):?> 8 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 9 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/ap/wp-content/uploads/2023/05/img1.jpg"> 10 <?php else:?> 11 <!--●値が有る場合に表示されます。--> 12 13 <?php 14 $pic=get_field('pic{$i}'); 15 $pic_url=$pic['sizes']['large']; 16 ?> 17 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 18 19 20 <?php endif;?> 21 22 </div> 23 <?php endfor ?> 24 </div>
試したこと1($valueに{$i}をつけるとFatal error: Array and string offset access syntax with curly braces is no longer supported inエラーになります)
php
1<div class="phptest"> 2 <?php 3 for($i = 1;$i < 9;$i++) : ?> 4 <div class="thumbnail-img thumbnail-img7"> 5 <p> 6 ppp<?php echo $i; ?> 7 </p> 8 <?php $value{$i} = get_post_meta($post->ID, 'pic{$i}', true);?> 9 <?php if(empty($value{$i})):?> 10 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 11 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/apple-world/wp-content/uploads/2023/05/img1.jpg"> 12 <?php else:?> 13 <!--●値が有る場合に表示されます。--> 14 15 <?php 16 $pic=get_field('pic{$i}'); 17 $pic_url=$pic['sizes']['large']; 18 ?> 19 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 20 21 22 <?php endif;?> 23 24 </div> 25 <?php endfor ?> 26 </div>``` 27 28### 試したこと2($valueに[$i]をつけるとFatal error: Uncaught Error: Cannot assign an empty string to a string offset inエラーになり、上のslickサムネイルも崩れます) 29```php 30<div class="phptest"> 31 <?php 32 for($i = 1;$i < 9;$i++) : ?> 33 <div class="thumbnail-img thumbnail-img7"> 34 <p> 35 ppp<?php echo $i; ?> 36 </p> 37 <?php $value[$i] = get_post_meta($post->ID, 'pic{$i}', true);?> 38 <?php if(empty($value[$i])):?> 39 <!--★ここは空欄だった場合に表示されます(空でOK)。--> 40 <img style="width: 100px; height:68px;" class="prof-noimage" src="http://parnasse.conohawing.com/apple-world/wp-content/uploads/2023/05/img1.jpg"> 41 <?php else:?> 42 <!--●値が有る場合に表示されます。--> 43 44 <?php 45 $pic=get_field('pic{$i}'); 46 $pic_url=$pic['sizes']['large']; 47 ?> 48 <img style="width: 100px; height:68px;" src="<?php echo $pic_url; ?>"> 49 50 51 <?php endif;?> 52 53 </div> 54 <?php endfor ?> 55 </div>
補足情報(FW/ツールのバージョンなど)
WordPress 6.2.2
カスタム投稿はACFプラグインで作成しています
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/05/30 03:22
2023/05/30 04:21