Smart Custom Fields(SCF)の繰り返し機能をget_post_metaで取得する方法
※ふつうのテキストを入力したリピートフィールドのみ動作確認済みです。
SCF::getを使う
普通は、SCF::getを使います。
$repeatA = SCF::get( 'repeatA' );
//$repeatA = SCF::get( 'repeatA', $post_id );#post id を指定する場合
foreach ( $repeatA as $fields ) {
echo $fields[ 'hoge_a' ];
}
ただ、プラグイン作者の公式サイトでも言及されてるとおり、
いつでも他のプラグインに乗り換えることができるようにしておきたい場合は WordPress 標準のget_post_meta()などを使用したほうが良いかと思います。
そこでget_post_metaを使うことにしました。
たぶん、公式サイトでは紹介されてない、はず。
get_post_metaを使う
リピートフィールドのグループ「repeatA」に「hoge_a」「hoge_b」「hoge_c」の3つのフィールドがあり、
$repeatA = SCF::get( ‘repeatA’ );
と同じ結果を得られるのが以下のコードです。
$scf_rep_hoge_a = get_post_meta( $post_id,'hoge_a');
$scf_rep_hoge_b = get_post_meta( $post_id,'hoge_b');
$scf_rep_hoge_c = get_post_meta( $post_id,'hoge_c');
$scf_rep_count = count( $scf_rep_hoge_a );
$repeatA = array();
$repeatA_tmp = array();
for( $i=0; $i<$scf_rep_count; $i++ ){
$repeatA_tmp['hoge_a'] = $scf_rep_hoge_a["$i"];
$repeatA_tmp['hoge_b'] = $scf_rep_hoge_b["$i"];
$repeatA_tmp['hoge_c'] = $scf_rep_hoge_c["$i"];
$repeatA[] = $repeatA_tmp;
}
実際に使う場合は、get_post_custom($post_id);の結果をvar_dumpで見てみると分かりやすいと思います。



コメント