【完全保存版】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; ?>
  • Twitterをフォロー
  • Facebookページを見る
  • RSSを登録