サポート » プラグイン » Advanced Custom Fields Repeater Fieldで投稿がない場合の処理

  • 解決済 shellgarden

    (@shellgarden)


    お世話になります。
    Advanced Custom Fields とそのアドオンRepeater Fieldを使い、
    素人ながら繰り返し処理の条件分岐を書いてみたのですが、
    うまくいかずまたここに泣きつかせて頂きます。

    <?php if(get_field('親フィールド')): ?>
    <?php while( has_sub_field('親フィールド') ): ?>
            <li><img src="<?php the_sub_field('子フィールド1'); ?>"  />
    <?php the_sub_field('子フィールド2'); ?></li>
                    <?php endwhile; ?>
                      <?php else : ?>
                    <li></li>
     <?php endif; ?>

    やりたい事は繰り返し処理の子フィールドに入力がなかった場合、
    elseの
    <li></li>
    を吐き出したいのですが、
    この条件分岐の何がダメなのでしょうか?
    どうぞご教授頂けますよう宜しくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • pluto1234

    (@pluto1234)

    「子フィールドの入力が一つもない」ときは、それで合ってます。
    しかし、質問の意図は違うと思われます。

    「子フィールドに入力がなかった場合」というのは、
    1) 子フィールド1 の入力がない
    2) 子フィールド2 の入力がない
    3) 子フィールド1 または 子フィールド2 どちらかの入力がない
    4) 子フィールド1 と 子フィールド2 どちらも入力がない
    のいずれの条件になりますか?

    トピック投稿者 shellgarden

    (@shellgarden)

    pluto1234さま

    ありがとうございます、やりたいのは4のどちらも入力がなかった場合です。
    私の関数では何がいけないのか、少々お手上げ気味です。^^;

    pluto1234

    (@pluto1234)

    <?php if(get_field('親フィールド')): ?>
        <ul>
        <?php while( has_sub_field('親フィールド') ): ?>
            <?php
            $url = get_sub_field('子フィールド1');
            $title = get_sub_field('子フィールド2');
            ?>
            <?php if (empty($url)) : ?>
                <?php if (empty($title)) :  ?> <!-- どちらもなし -->
                    <li></li>
                <?php else : ?>                <!-- タイトルの入力のみ-->
                    <li><?php echo $title; ?></li>
                <?php endif; ?>
            <?php else : ?>
                <?php if (empty($title)) : ?>  <!-- URLの入力のみ -->
                    <li><img src="<?php echo $url; ?>" /></li>
                <?php else : ?>                <!-- 両方入力 -->
                    <li><img src="<?php echo $url; ?>" /><?php echo $title; ?></li>
                <?php endif; ?>
            <?php endif; ?>
        <?php endwhile; ?>
        </ul>
    <?php else : ?>
        <!-- 入力なし -->
    <?php endif; ?>
    トピック投稿者 shellgarden

    (@shellgarden)

    ありがとうございます!
    pluto1234さまに書いて頂いたコードで無事解決致しました!

    empty変数を使えばこのような条件分岐も出来るのですね、なるほど…。
    初心者の私にはとても勉強になりました、本当にありがとうございます!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「Advanced Custom Fields Repeater Fieldで投稿がない場合の処理」には新たに返信することはできません。