• ベストアンサー
  • すぐに回答を!

Advanced Custom Fields出力

  • 質問No.9657803
  • 閲覧数37
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 71% (111/156)

ワードプレスのAdvanced Custom Fieldsで設定した項目
<?php the_field('setumei1'); ?>を出力したいです。

setumei は 5件あるので

<h1 class="aaa"><?php the_field('setumei1'); ?></h1>
<h1 class="aaa"><?php the_field('setumei2'); ?></h1>
<h1 class="aaa"><?php the_field('setumei3'); ?></h1>
<h1 class="aaa"><?php the_field('setumei4'); ?></h1>
<h1 class="aaa"><?php the_field('setumei5'); ?></h1>

となりますが、これをwhile文 書くとどうすればよいですか。
ご教授ください。

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 72% (111/153)

No.1の補足に対して回答します。
4件目、5件目に内容が空の場合は出力しないようにするには

echo '<h1 class="aaa">';
the_field("setumei$i");
echo '</h1>';

を下記のように変更します。

if($i >= 4 && !get_field("setsumei$i")){
continue;
}
echo '<h1 class="aaa">';
the_field("setumei$i");
echo '</h1>';

ACFのget_fieldを用いて値が空かどうかを見ています。
お礼コメント
u2122

お礼率 71% (111/156)

何度も回答いただき誠にありがとうございます!大変助かりました。
参考にします^^
投稿日時:2019/09/18 00:18

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 72% (111/153)

このような処理にはwhile文よりもfor文のほうが向いています。
for文で書くと

for($i = 1; $i <= 5; $i++){
echo '<h1 class="aaa">';
the_field("setumei$i");
echo '</h1>';
}

のようになります。
あえてwhile文で書くとすれば

$i = 1;
while($i <= 5){
echo '<h1 class="aaa">';
the_field("setumei$i");
echo '</h1>';
$i++;
}

となります。
補足コメント
u2122

お礼率 71% (111/156)

重ねて質問して申し訳ありませんが、
例えば、4件目、5件目に内容が空の場合は出力しないように if分を使う場合はどのような構文になりますか?
投稿日時:2019/09/17 20:51
お礼コメント
u2122

お礼率 71% (111/156)

ありがとうございます!!すごい!たいへん助かりました^^
ここのthe_field("setumei$i"); ” で囲うのがわからなくて困っていました。
投稿日時:2019/09/17 20:52
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ