ACF(アドバンスドカスタムフィールド)のフィールド読み込み


スポンサーリンク

ACF(アドバンスドカスタムフィールド)は、データのエントリーをサポートするプラグイン。

パソコンに詳しくなくてもデータのエントリーが楽になるということで、かなり評価がいいんですけどね。

便利かといえば、個人的には、あんまり。。。
ただ、よく使う機能などをプログラムにしてWPをデータエントリープログラムとして使うならば、便利かも。

でも、それにPHPが書けないといけないし、ワードプレスの構造を知らないといけないし。。。
非常に疑問のプラグイン。

しかも、バグ?もあって、フィールドの値を読み込めなかったり、たまーに意味不明の動きをしてくれて、
無駄な工数を持っていきます。

その場合には、「なぜ動かないんだ?」ではなく、やり直したほうが速いということを言っておきます。

それで、フィールドのエントリーは、やればわかるということで割愛しますけど、
そのACF(アドバンスドカスタムフィールド)のフィールドデータを読み込むプログラム構造を、いっつも忘れてしまうので、記録しておきます。

ACF(アドバンスドカスタムフィールド)のフィールドをただただ並べたものを読み取る方法


$data = get_field('フィールド名');


※他のページで設定してあるフィールドを読み込みたい場合は、各コマンドの後ろにターゲットのページのPOST_IDを指定することで読み込みが可能になります。
$data = get_field('フィールド名',post_id);
ex.
$data = get_field('フィールド名',12); // post id が 12 のページで投稿したACFのフィールドデータを取り込む



ACF(アドバンスドカスタムフィールド)のグループ内のフィールドを読み取る方法


ポインタを当てる?ために一度 has_sub_field を実行します。

if( has_sub_field('グループフィールド名') ){
$data = get_sub_field('グループフィールド内のフィールド名');
:
:
:
}




ACF(アドバンスドカスタムフィールド)の繰り返しフィールド内のフィールドを読み取る方法


ポインタを当てる?ために一度 have_rows で データの有無を確認し have_rows ループ内で the_row を実行しポンタを固めます。

if(have_rows('繰り返しフィールドのフィールド名')){
while(have_rows('繰り返しフィールドのフィールド名')){
the_row();
$data = get_sub_field ( '繰り返しフィールド内のフィールド名' );
:
:
:
}
}


例えば、
groupfield : グループ
ingroupfield : テキスト
roopfield : 繰り返し
loopinfield1 : テキスト
loopinfield2 : 画像
datafield : テキスト
pictfield : 画像

といった構造の場合、

if( has_sub_field('groupfield') ){
$ingroupfield = get_sub_field('ingroupfield ');
if(have_rows('roopfield')){
while(have_rows('roopfield')){
the_row();
$loopinfield1 = get_sub_field ( 'loopinfield1' );
$loopinfield2 = get_sub_field ( 'loopinfield2' );
:
:
:
}
}
}
$datafield = get_field('datafield');
$pictfield = get_field('pictfield');


ACF(アドバンスドカスタムフィールド)のフィールド読み込みまとめ



ワードプレスのカスタムフィールドはプログラムを書くものとしては、かなり厄介な連結構造です。

それを制御して、これだけの機能をのっけてるのはすごいと思います。


でも、それは技術的なことで、利用するプラグインとしては、多少のわがままをクリアできるプラグインです。

知らなければ、他の妥協点でやることを知っているから使ってしまう(使う努力)。

いいような悪いような。。。とりあえず、多くのコードを書かずに作業を定型化できるメリットはあると思います。

データの読み取りパターンも定型的で簡単に使うことができます。


他に必要になる知識としては、テンプレートの切り替え方法ぐらいです。

それでも敷居が高いといえば高いですが(笑)


プルグラムを書くものとしては面白い材料であることは確かです。

いろいろと楽しく使う方法を考えてみましょう。

スポンサーリンク