Written by Kasumi

【ACFプラグイン】Advanced Custom Fieldsの使い方・出力方法を紹介

wordpressでカスタムフィールドを実装したい。

簡単な管理画面の操作・PHPコードを追加するだけで出力できるカスタムフィールドプラグインを知りたい。

このようなお悩みを解決します。

本記事では筆者もweb制作で重宝してるプラグイン、多機能でユーザ評価が高く設定も簡単なAdvanced Custom Fields(以下ACF)について、使い方・出力方法を紹介します。

ACFをイントール・有効化・導入準備

管理画面ログイン後、プラグイン>新規追加>検索ボックスにadvanced custom fieldsと入れて検索。

上記画像イメージが検索されます。

ACFをインストール・有効化しましょう。

新規追加でカスタフィールドを作成

ACFをインストールしたら左サイドバーにカスタムフィールド項目が追加されます。

新規追加ボタンを押し、フィールドグループを作成します。

フィールドグループを追加

フィールドグループを作成します。

A:任意のフィールド名を入力しましょう。カスタムフィールドを使いたいページ名でも良いです。

B:【フィールドを追加ボタン】を押す事でカスタムフィールドを生成でき、各種設定ができるようになります。

C:カスタムフィールドを設置したいページを選びます。選んだページ管理画面にカスタムフィールドが生成されるようになります。

D:【公開ボタン】を押す事でカスタムフィールドが公開されます。

フィールドを追加

【フィールドを追加ボタン】を押して設定画面を開きましょう。

最低限以下項目は設定必要です。

A:フィールドラベルを設定しましょう。任意のカスタムフィールド名で大丈夫です。

B:フィールド名を設定しましょう。任意の英小文字を設定します。出力する際に使います。

C:フィールドタイプを選択します。

以上で導入準備は完了です。

フィールドを追加して任意のカスタムフィールドを生成しましょう。

設定が終わったら【公開ボタン】を押して完了です。

次章よりweb製作者がよく使うカスタムフィールドタイプ・出力方法を紹介します。

テキストフィールドを作成・出力

テキストを入力するカスタムフィールドを作成します。

フィールドタイプでテキストを選択しましょう。

公開ボタンを押します。

テキストフィールドを出力するphpコード

<?php $text = get_field('text'); ?>
<!-- カスタムフィールドに値が入ってたら -->
<?php if (!empty($hoge)) : ?>
  <!-- 値を出力 -->
  <?php echo $text; ?>
<?php else : ?>
<?php endif; ?>

上記がテキストフィールドを出力するphpコードになります。

get_fieldの()内にフィールド名を指定しましょう。

テキストエリアフィールドを作成・出力

1行ではなく複数行あるテキスト内容を出力したい場合はフィールドタイプでテキストエリアを選択します。

テキストエリアを出力するphpコード

<?php $textarea = get_field('textarea'); ?>
<!-- カスタムフィールドに値が入ってたら -->
<?php if (!empty($textarea)) : ?>
  <!-- 値を出力 -->
  <?php echo $textarea; ?>
<?php else : ?>
<?php endif; ?>

上記がテキストエリアを出力するphpコードになります。

画像アップロードフィールドを作成・出力

画像をアップロードするフィールドを作成したい場合はフィールドタイプで画像を選択します。

返り値に画像URLを選択します。

上記を選択する事でアップロードされた画像をURL取得する事ができます。

画像アップロードフィールドを出力するphpコード

<?php $img = get_field('img'); ?>
<?php if (!empty($img)) : ?>
  <img src="<?php echo $img; ?>" alt="">
<?php else : ?>
<?php endif; ?>

上記が画像アップロードフィールドを出力するphpコードになります。

imgタグ内のsrc属性にフィールドを出力するように注意しましょう。

有無を判定するチェックボックスフィールドを作成・出力

チェックボックスにチェックが入ってたら出力・チェック無しの場合は出力しないフィールドを作成する場合はフィールドタイプで真/偽を選択します。

有無判定を出力するphpコード

<?php $umu = get_field('umu'); ?>
<?php if ($umu) : ?>
  <!-- チェック有りだったら -->
<?php else : ?>
  <!-- チェック無しだったら -->
 <?php endif; ?>

上記が有無判定するphpコードになります。

if else文を使って条件分岐させましょう。

繰り返しフィールドを作成・出力する

※繰り返しフィールドを使うには有料版Advanced Custom Fields Proを購入する必要があります。

A:同じようなフィールドを繰り返し使いたい場合は、フィールドタイプで繰り返しフィールドを選択します。

B:繰り返しフィールドを選択したら下部にサブフィールドが生成されます。

C:【サブフィールドを追加ボタン】を押し、繰り返したいフィールドを設定します。(今回の例ではテキストタイプフィールドを繰り返します。)

繰り返しフィールドを出力するphpコード

<?php $repeat = get_field('repeat'); ?>
<!-- カスタムフィールドに値が入ってたら -->
<?php if ($repeat) : ?>
  <?php foreach ($repeat as $key => $value) : ?>
  <!-- サブフィールドの値を出力 -->
    <?php echo $value['text']; ?>
  <?php endforeach; ?>
<?php else : ?>
<?php endif; ?>

繰り返しフィールドを出力するにはforeach文を使います。

サブフィールドが配列の値になってるので、foreach文のループ内で上記コードのように値を取り出して上げればOKです。

まとめ

ACFプラグインは無料の範囲でも非常に豊富なカスタムフィールドタイプを設定できますのでおすすめです。

以上で解説を終わります。

目次

関連記事

WordPress プログラミング

カスタム投稿タイプのターム(カテゴリー)の初期設定を変更する方法

2022.04.01
3226
Webツール プログラミング

chromeブラウザで更新したファイルのキャッシュ有効期間を調べる方法【htmlサイト】

2022.01.20
8805
WordPress プログラミング

wordpressのfeed取得先がEntity: line 2: parser で見れない時の対処方法

2021.10.27
1281
HTMLCSS プログラミング

【簡単】inputタグで入力した内容の履歴・入力候補を出さない方法【属性を設定すれば解決】

2022.02.24
13635