自分のためのメモ

ACFとSCFで画像を表示させる際の違い

ACF(Advanced Custom Fields)とSCF(Smart Custom Fields)は
違うプラグインなので、記述方法は当然異なるが、実際にどの程度違うのかを比較するためのメモ。

Advanced Custom Fieldsの場合

仮にフィールド名を「work_photo_img」とし、
返り値のフォーマットに「画像配列」を選択した場合

<!--ACF画像表示テスト-->
<?php if ( $image = get_field("work_photo_img") ) : ?>
    <figure><?php echo wp_get_attachment_image($image['id'],'square-thumb'); ?></figure>
<?php else : ?>
    <img src="<?php echo get_stylesheet_directory_uri(); ?>/img/common/noimg_square.gif">
<?php endif; ?>

Smart Custom Fieldsの場合

SCFを使うのは繰り返す前提での使用が多いだろうから、
仮にグループ名を「work-photo-group」とし、名前を「work-photo-img」とした場合

<!--SCF画像表示テスト-->
<?php 
$blocks = SCF::get("work-photo-group");
if ( !empty($blocks[0]["work-photo-img"]) ) :
?>
    <ul>
    <?php foreach ( $blocks as $field_name => $field_value ) { ?>
        <li><?php echo wp_get_attachment_image($field_value['work-photo-img'], 'square-thumb'); ?></li>
    <?php } ?>
    </ul>
<?php else : ?>
    <img src="<?php echo get_stylesheet_directory_uri(); ?>/img/common/noimg_square.gif">
<?php endif;  ?>

で表示の確認がとれました。
因みに’square-thumb’はfunction.phpで定義済みの画像サイズ。