うさぎのイラスト

ネットアンサー55備忘録

web技術を書いていきます

プラグイン Advanced Custom Fields

-2015年05月28日-

Advanced Custom FieldsのタグとACF-Repeater Fieldのタグは別物です。詳しくは専用記事

●テキスト・テキストエリア・数値・メール・パスワードなど

基本的な出力は下記です。
※例はpタグでくくっております。
<?php  
//テキスト
$txt = get_field('txt');
if($txt){ ?><p><? echo $txt; ?></p>
<?php } ?>

●画像

返り値を「画像オブジェクト」にする

●functions.php設定は下記の通り
/*//////////////////////////////////////
■ACF画像の呼び出し v1.1
ACF_image('項目名','サイズ','種類');
種類:photo、url、alt、title、caption

■種類とサイズは省略可能。
サイズ → full
種類	→ imgタグが呼び出されます。

■CF画像の返り値は必ず「画像オブジェクト」にする。
*//////////////////////////////////////
function ACF_img($str,$size_name='full',$type='photo',$row=''){
	
	//空入力を有効に
	if($type ==''){$type = 'photo';}

	//rowを第2因数以降でも有効に
	if($size_name == 'row' || $type == 'row' ){
		$row = 'row';
		$type='photo';
		if($size_name == 'row'){
			$size_name='full';
		}
	}
	
	//rowの処理
	if($row != 'row'){
		$image = get_field($str);
	}else{
		//繰り返し(repeater)の画像呼び出し
		$image = get_sub_field($str);
	}
	
	//画像情報の読み込み
	if( !empty($image) ){ 
		// vars
		$url = $image['url'];
		$alt = $image['alt'];
		$title = $image['title'];
		$caption = $image['caption'];

		// Resize
		if(($size_name != '') && ($size_name != 'full')){		
			$thumb = $image['sizes'][$size_name];
		}else{
			$thumb = $url;
		}

		switch ($type){
			case 'photo': 	$photo = '<img src="'.$thumb.'" alt="'.$alt.'" />';break;
			case 'url': 	$photo = $thumb;break;
			case 'alt': 	$photo = $image['alt'];break;
			case 'title': 	$photo = $image['title'];break;
			case 'caption': $photo = $image['caption'];break;
		}

		echo $photo;
	
	}
	
}

・画像を読み込みたいところに書きを記述(サイズそのままの場合)
<?php ACF_img('メイン画像'); ?>
・画像を読み込みたいところに書きを記述(サイズ指定)
<?php ACF_img('メイン画像','w254'); ?>
・画像を読み込みたいところに書きを記述(リピートはこれ)
<?php ACF_img('画像','row'); ?>

●ファイル

返り値を「ファイル URL」にする

<?php  
//ファイル(返り値は「ファイルURL」)
$file = get_field('file');
if($file){ ?><a href="<? echo $file; ?>" target="_blank">ファイル</a>
<?php } ?>

参考サイト

Advanced Custom Fieldsの使い方
Advanced Custom Fieldsの出力