【完全保存版】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; ?>

