Mill's Note

【ACF】基本の出力方法

Advanced Custom Fields は様々なフィールドが用意されていて、とっても便利^^ サイト作成の必需品です。

基本的な呼び出し方法をサクッと確認できるよう一覧にまとめました。
繰り返しフィールドグループフィールド など出力方法の異なるフィールドは、それぞれのページで詳しく ? 説明していますので、そちらでどうぞ。

基本の呼び出し

投稿や固定ページ (個別ページ) に設置したフィールド

投稿や固定ページなど個別ページ に設置したフィールドを呼び出す場合は、フィールド名を指定すればOK。

フィールドcode
同じ投稿に設置$field = get_field('フィールド名');
別の投稿に設置$field = get_field('フィールド名', '呼び出し元の投稿ID');
オプションページに設置$field = get_field('フィールド名', 'optiion');

記述例

PHP
<?php 
  $field = get_field('フィールド名');
  if ( $field ) { echo $field; }
?>

アーカイブページ (カテゴリー等の一覧ページ)に設置したフィールド

カテゴリーなどのアーカイブページ に設置したフィールドを呼び出すは、表示するページに関わらず「フィールド名 + タクソノミー名 + カテゴリー等のID」を指定します。

フィールドcode
カテゴリーに設置$field = get_field('フィールド名', 'category_' .'カテゴリーID');
タグに設置$field = get_field('フィールド名', 'post_tag_' .'タグID');
カスタムタクソノミーに設置$field = get_field('フィールド名', 'タクソノミースラッグ_' .'タクソノミーID');

記述例

例はカテゴリーにしていますが、タクソノミーを変えればタグやカスタムタクソノミーにも対応します。

カテゴリーIDを直接指定
PHP
<?php
  $field = get_field('フィールド名', 'category_10');
  if ( $field ) { echo $field; }
?>
カテゴリーページで、そのカテゴリーのフィールドを呼び出す
PHP
<?php
  $id = get_queried_object_id();
  $field = get_field('フィールド名', 'category_' . $id);
  if ( $field ) { echo $field; }
?>

投稿ページやカテゴリー一覧の場合

get_the_category()get_categories()で取得したカテゴリーIDを入れればOKです^^

/* 投稿ページ、投稿に紐づいたカテゴリの場合 */
$terms = get_the_category();
$cat_id   = $terms[0]->term_id; /* 1個目のカテゴリを取得 */
$field = get_field('フィールド名', 'category_' . $cat_id);

カテゴリ一覧の場合は、get_categories()foreachで回してカテゴリーIDを入れるとか、よしなにm(__)m