今回は SourceTree で Bitbucket に S…
Advanced Cutstom Field で表示する場所をスラッグで指定する。
今回は Advanced Custom Fields の PHP でフィールドグループを表示するページを ID ではなく スラッグで指定する方法をご紹介します。
普通にAdvanced Custom Fields の Tools > Generate PHP で PHP 出力すると以下のような location の設定になります。
value の部分がページ ID になります。
'location' => array ( array ( array ( 'param' => 'page', 'operator' => '==', 'value' => 24, ), ), ),
get_page_by_path 関数でスラッグ名で指定する。
get_page_by_path 関数はスラッグ名から ページの ID を取得できる関数です。
これを利用してスラッグ名から ID を取得します。
$pagecheck = get_page_by_path('slugname'); $pageid = $pagecheck->ID;
取得した ID を 変数に代入して先程の ページ ID を指定する箇所に記述します。
'location' => array ( array ( array ( 'param' => 'page', 'operator' => '==', 'value' => $pageid, ), ), ),
これで表示するページをスラッグで指定できるようになりました。
親ページがある場合の設定方法
親ページがある場合は上記のやり方だとできません。
以下のように親ページのスラッグ名のあとにスラッシュをつけて指定します。
$pagecheck = get_page_by_path('parentslug/slugname');
参考サイト
https://acfextras.com/set-acf-location-rules-based-on-slug/