【完全保存版】Advanced Custom Fields(アドバンスカスタムフィールド)の出力タグまとめ
[最終更新日]2020年10月26日
ACF テキストフィールド
<?php the_field('text'); ?>
ACF テキストエリア
<?php the_field('textarea'); ?>
ACF ラジオボタン
<?php // vars $field = get_field_object('color'); $value = $field['value']; $label = $field['choices'][ $value ]; ?> <p>Color: <span class="color-<?php echo $value; ?>"><?php echo $label; ?></span></p>
ラジオボタンによる分岐
<?php if( get_field('ラジオボタンのフィールド名') == "選択肢名1"): ?> <p>処理1</p> <?php elseif( get_field('ラジオボタンのフィールド名') == "選択肢名2"): ?> <p>処理2</p> <?php endif; ?>
ACF 画像
<?php $image = get_field('image'); $size = 'full'; // (thumbnail, medium, large, full or custom size) if( $image ) { echo wp_get_attachment_image( $image, $size ); } ?>
ACF ファイル
<?php $file = get_field('file'); if( $file ): ?> <a href="<?php echo $file['url']; ?>"><?php echo $file['filename']; ?></a> <?php endif; ?>
ここからACF PRO(有料版)です!
私も最近お金を払ってPROに申し込んだのですが、めちゃくちゃ使いやすくて高機能です。
CMS化を目指している方や、柔軟性のある画面にしたい方におすすめです。
ACF グループ
<?php // vars $group_name = get_field('グループのフィールド名'); if( $group_name ): ?> <div id="box"> <img src="<?php echo $group_name['画像URL名']; ?>" alt="<?php echo $group_name['alt名']; ?>" /> <div class="content"> <?php echo $group_name['caption']; ?> <a href="<?php echo $group_name['URL名']; ?>"><?php echo $group_name['リンクテキスト名']; ?></a> </div> </div> <?php endif; ?>
有る無の分岐(ない場合非表示)
<?php // vars $spec = get_field('仕様'); if( $spec ): ?> //本体サイズに入力がない場合、非表示 <?php if($spec['サイズ']): ?><p>サイズ:<?php echo $spec['サイズ']; ?></p><?php endif; ?> //重量に入力がない場合、非表示 <?php if($spec['重量']): ?><p>重量:<?php echo $spec['重量']; ?></p><?php endif; ?> <?php endif; ?>
ACF リピータフィールド
<?php if(have_rows('リピータフィールド名')): ?> <?php while(have_rows('リピータフィールド名')): the_row(); ?> <?php the_sub_field('サブフィールド名'); ?> <?php endwhile; ?> <?php endif; ?>
テーブルにも使えますよ(行を必要に応じて自由に増やせます)
<?php if (get_field('スペック表')): ?> <table class="spec_tbl"> <?php while(the_repeater_field('スペック表')): ?> <tr> <th><?php the_sub_field('項目'); ?></th> <td><?php the_sub_field('内容'); ?></td> </tr> <?php endwhile; ?> </table> <?php endif; ?>
ACF 柔軟なコンテンツ(フレキシブルコンテンツフィールド)
<?php if( have_rows('フィールド名') ): ?> <?php while ( have_rows('フィールド名') ) : ?> <?php if( get_row_layout() == 'レイアウト名1' ): ?> <?php the_sub_field('コンテツフィールド名1'); ?> <?php elseif( get_row_layout() == 'レイアウト名2' ): ?> <?php the_sub_field('コンテツフィールド名2'); ?> <?php endif; ?> <?php endwhile; ?> <?php endif; ?>
入れ子にした場合
<?php if( have_rows('フィールド名') ): ?> <?php while ( have_rows('フィールド名') ) : the_row(); ?> <?php if( get_row_layout() == 'レイアウト名1' ): ?> <!— レイアウト名1の出力 --> <?php elseif( get_row_layout() == 'レイアウト名2' ): ?> <!— レイアウト名2にリピーターフィールドがあるかの判別 --> <?php if( have_rows('リピーターフィールド名') ): ?> <?php while ( have_rows('リピーターフィールド名') ) : the_row(); ?> <?php the_sub_field('image'); ?> <?php endwhile; ?> <?php endif; ?> <?php endif; ?> <?php endwhile; ?> <?php endif; ?>