Advanced Custom Fieldsの応用。
取得・出力の基本形
「customfield」ってフィールド名で作ってるとする。
//出力する
echo get_field('customfield');
//中身があれば出力する
if(get_field('customfield')):
echo get_field('customfield');
endif;
別ページのカスタムフィールドを取得する
フィールド名のあとにページID(数字のやつ)を加えたらそのページのカスタムフィールドを呼んでこれる。
ページIDが「40」のフィールド名「customfield」を呼び出すとこうなる。
//出力する
echo get_field('customfield',40);
//中身があれば出力する
if(get_field('customfield',40)):
echo get_field('customfield',40);
endif;
ページIDじゃなくてページスラッグで指定する
正直なところページIDは普段使わないんだよね。
スラッグでやりたい。
ページスラッグから直接指定できないっぽいんで、スラッグからIDを引っ張ってきてそれをぶち込むことになる。
ページIDが「40」でページスラッグが「hogehoge」のフィールド名「customfield」を呼び出すとこうなる。
//スラッグからID抽出
$page_id = get_page_by_path('hogehoge');
$page_id = $page_id -> ID; //ここでページIDの「40」が出力される
//出力
echo get_field('customfield',$page_id);
//中身があれば出力する
if(get_field('customfield',$page_id)):
echo get_field('customfield',$page_id);
endif;
まとめというか
トップページを固定ページに指定しない状態(index.php、home.phpとか)で、スライドショーとかフリースペース的なものを付けたいなってときに、ちょいちょい更新かけるだけなのにいちいちftpに上げるのだるいわってなる、そうするとカスタムフィールドを活用したいんだけど、固定ページじゃないからカスタムフィールドを付与できない。
簡易データベース的に使える固定ページを作っておいて、そこから引っ張ることで補完する。
まあそれなら最初から固定ページでやれよって感じなんだけど、後付でそうしなきゃいけなくなってる場合の対処法として。
コメント