Web制作(フリーランスWebデザイナー)

日にち2016/10/26
WordPress

Advanced Custom Fieldでリピート出力の表示非表示させる方法

この記事は書いてから 約 1年 経過しています。 1年以上経過しているので情報が古い可能性があります。

Advanced Custom Fieldでリピート出力の表示非表示させる方法

Advanced Custom Fieldでリピート出力の表示非表示させる方法です。WordPressを使うで上でAdvanced Custom Fieldは必須だと思います。更にRepeater Fieldを使う事は頻繁にあるかと思います。

基本の出力方法

まずは、基本的な出力方法をテキストと画像を使ってコードを下に書いときます。他にもチェックボックスなどございますが、今回は省かせていただきます。

テキストの場合

フィールド名部分を各自で設定したフィールド名を入れると表示されます。

<?php the_field('フィールド名'); ?>

画像の場合

画像はIDやURLなど設定時に表示方法が設定出来ますが、URLでの表示方法です。

<img src="<?php $image = the_sub_field('フィールド名'); ?>" alt="○○" />

リピートでif構文を使って表示非表示の出力方法

下のコードをコピペして、フィールド名等を各自の設定に合わせれば出来ます。

<?php if(get_field(‘フィールド名’)): ?>
<?php while(the_repeater_field(‘フィールド名’)): ?>

<?php if(get_sub_field(‘フィールド名 リピート’)): ?>
<?php the_sub_field(‘フィールド名 リピート’); ?>
<?php endif; ?>

<?php endwhile; ?>
<?php endif; ?>

更にリピートの中にリピートを入れると下記コードの様になります。

<?php if(have_rows('フィールド名')): ?>
<?php while(have_rows('フィールド名')): the_row(); ?>

    <h2><?php the_sub_field('フィールド名 リピート'); ?></h2>
    
    <?php if( get_sub_field('フィールド名 リピート') ): ?>
        <img src="<?php $image = the_sub_field('フィールド名 リピート'); ?>" alt="<?php the_title(); ?>" />
    <?php endif; ?>
    
    <?php the_sub_field('フィールド名 リピート'); ?>
    
        <?php if(have_rows('フィールド名 リピート')): ?>
        <?php while(have_rows('フィールド名 リピート')): the_row(); ?>
        
            <?php if( get_sub_field('フィールド名 リピートのリピート') ): ?>
                <h3><?php the_sub_field('フィールド名 リピートのリピート'); ?></h3>
            <?php endif; ?>
            <?php if( get_sub_field('フィールド名 リピートのリピート') ): ?>
                <?php the_sub_field('フィールド名 リピートのリピート'); ?>
            <?php endif; ?>
            
        <?php endwhile; ?>
        <?php endif; ?>
    
<?php endwhile; ?>
<?php endif; ?>

表示非表示には、下記PHPが必要です。

<?php if( get_sub_field('フィールド名 リピート') ): ?>フィールドを読み込む<?php endif; ?>

 

facebook twitter

© 2013-2017 visual hallucination.