HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

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(アドバンスドカスタムフィールド)のフィールド読み込みまとめ



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

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


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

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

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

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


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

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


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

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

スポンサーリンク

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策

カラフルボックスなど cpanel サーバーでPerlでMySQLにアクセスできないときの対策 カラフルボックスでPerlでMySQLにアクセスできないときの対策カラフルボックスでPerlでMySQLにアクセスできない!エラーメッセージは、mysql のドライバーがない。こんなメッセージが返って

MW WP FORM のフックが効かない。

MW WP FORM のフックが効かない。 MW WP FORM のフックが効かない。MW WP FORM は、各種フックがあってカスタマイズが便利~とか言われているプラグインですが。。。マニュアルにはあるのにフックが効かないフックがかなりある

MW WP FORM のショートコードで出力される内容をカスタマイズする。

MW WP FORM のショートコードで出力される内容をカスタマイズする。 MW WP FORM のショートコードで出力される内容をカスタマイズしたくなりました。非表示フィールド type=”hidden” にデータをためておいて、それをメール送信する

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所

WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所 WelCart 買い物かごのカスタマイズするとき、毎回テンプレートファイルを探すのでメモしておきます。WelCart 買い物かごのカスタマイズ、テンプレートファイルの場所WelCart 買い物かごのカ

WelCart で投稿ページに商品購入欄を作る

WelCart で投稿ページに商品購入欄を作る WelCart の商品ページは、ご存知んごとくウルトラダサい。これをカスタマイズしないとなんとも素人っぽさの抜けないサイトになってしまう。WelCart で投稿ページに商品購入欄を作るときのモジュール

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲