目次
通常時
<?php if(get_field('course-intro')): ?>
<p><?php the_field('course-intro'); ?></p>
<?php endif; ?>
画像タイプ
①[画像配列]の書き出し方法例
<?php
$eyecatch = get_field('eyecatch');
if( !empty( $eyecatch ) ): ?>
<figure>
<img src="<?php echo esc_url($eyecatch['url']); ?>" alt="<?php echo esc_attr($eyecatch['alt']); ?>" width="" height=""/>
</figure>
<?php endif; ?>
②[画像URL]の書き出し例
<?php if(get_field('eyecatch')) :?>
<figure>
<img src="<?php the_field('eyecatch'); ?>" alt="" width="" height=""/>
</figure>
<?php endif; ?>
繰り返しフィールド基本形
<?php if(get_sub_field('move_point')): ?>
<?PHP while(have_rows('move_point')): the_row(); ?>
<?php if(get_sub_field('train-line')) :?>
<small><?php the_sub_field('train-line'); ?></small>
<?php endif; ?>
<?php if(get_sub_field('move-point-name')) :?>
<h3><?php the_sub_field('move-point-name'); ?></h3>
<?php endif; ?>
<?php endwhile; //end move_point ?>
<?php endif; //end move_point ?>
子要素は必ず「sub_field」を使用すること。
柔軟コンテンツ
<?php if(have_rows('spot-info')): ?>
<?php while(have_rows('spot-info')): the_row(); //柔軟コンテンツフィールド ?>
<?php if(get_row_layout() === 'spot-info-textarea' ): // 本文レイアウト ?>
<p><?php echo get_sub_field( 'spot-info-text' ); ?></p>
<?php endif; ?>
<?php if(get_row_layout() === 'spot-media' ): // メディア ?>
<div class="media">
<figure class="media_image"><img src="<?php echo get_sub_field( 'spot-media-image' ); ?>" alt="<?php echo get_sub_field( 'spot-media-image' ); ?>"></figure>
<div class="media_text"><?php echo get_sub_field( 'spot-media-text' ); ?></div>
</div>
<?php endif; ?>
<?php endwhile; //end spot-info ?>
<?php endif; //end spot-info ?>
グループフィールド
①代入式
<?php
$companyInfo = get_field('company_info');
?>
<h3>会社概要</h3>
<dl>
<dt>会社名</dt>
<dd><?php echo $companyInfo['company_name']; ?></dd>
<dt>所在地</dt>
<dd><?php echo $companyInfo['company_location']; ?></dd>
</dl>
get_fieldでグループフィールドのフィールド名を取得し、$companyInfoに代入しています。
会社名や所在地は、$companyInfo(グループフィールド「company_info」)の配列として返ってくるので、フィールド名で指定すると出力することができます。
参照:https://usagicode.com/wordpress/how-to-use-acf-group-field/
②ループ式
<h3>会社概要</h3>
<?php if( have_rows('company_info') ): ?>
<?php while( have_rows('company_info') ): the_row(); ?>
<dl>
<dt>会社名</dt><dd><?php the_sub_field('company_name'); ?></dd>
<dt>所在地</dt><dd><?php the_sub_field('company_location'); ?></dd>
</dl>
<?php endwhile; ?>
<?php endif; ?>
繰り返しフィールドと同様の方法でも作成できます。
小技
①省略形
<h3>会社概要</h3>
<?php if( have_rows('company_info') ): while( have_rows('company_info') ): the_row(); ?>
<dl>
<dt>会社名</dt><dd><?php the_sub_field('company_name'); ?></dd>
<dt>所在地</dt><dd><?php the_sub_field('company_location'); ?></dd>
</dl>
<?php endwhile; endif; ?>
ifとwhileの間に挟むものがない場合は、一つにまとめることができます。
②カウント式
<?php if(have_rows('bullet-arrival')): $i=1; //初期値 ?>
<ul class="ut_course_route_list">
<?php while(have_rows('bullet-arrival')): the_row(); //新幹線~観光地まで ?>
<li>
<?php if(get_sub_field('arrival-type')): ?>
<a href="#spot<?php echo $i; ?>"><span class="ut_icon <?php the_sub_field('arrival-type'); ?>">アイコン</span></a>
<?php endif; ?>
</li>
<?php $i++; //カウントアップ ?>
<?php endwhile; ?>
</ul>
<?php endif; ?>
$iに1を代入し、クラス名に出力しています。
ループの最後にカウントアップしていくことで、リンク先が「#spot1」「#spot2」「#spot3」と増えていきます。

