[WP Plugin] Advanced Custom Fields プラグインで WordPress のカテゴリーにカスタムフィールドを追加する

プラグインを利用して管理画面に入力フィールドを追加し、functions.php で値を取得するところまで。

[markdown]
## Documentation

公式ドキュメントがしっかりしていて、安心感があります。

> * [ACF | Resources, Documentation, API, How to & Tutorial Articles](https://www.advancedcustomfields.com/resources/)

こちらを参考にさせて頂きました。

> * [WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法 | エス技研](https://blog.s-giken.net/254.html)
> * [Advanced Custom Fieldsの全項目解説・公開側表示編集編 | エス技研](https://blog.s-giken.net/253.html)

## Installation

導入はプラグインインストールできるので省略します。

> * [Advanced Custom Fields — WordPress Plugins](https://wordpress.org/plugins/advanced-custom-fields/)

“`prettyprinted
WordPress v4.8
Advanced Custom Fields v4.4.11
“`

インストールが完了すると、管理画面から「カスタムフィールド」が選択できます。

## Configuration

管理画面の「投稿>カテゴリー」の編集画面にカスタムフィールドを追加する設定を行います。

「カスタムフィールド>フィールドグループ>新規追加」をクリックします。
フィールドグループにラベルを付けておきます。
ここでは `archive_head` とします。

次に「フィールドを追加」をクリックし、カテゴリー編集画面に表示したいカスタムフィールドを作成します。
表示ラベル `Title` と PHP から呼び出すためのフィールド名 `archive_head_title`、フィールドタイプとして `テキスト` を設定しました。

この手順を繰り返し、必要なだけフィールドを追加していきます。

次に設定したフィールドをどこに表示させるかを設定します。

セレクトボックスの中から `Taxonomy Term`, `等しい`, `カテゴリー` を選択します。

似たような選択肢が多くて迷いますが

> 左のセレクトボックスの中には「Post Category」がありますが、こちらはカスタムフィールドを追加する「投稿」の条件をカテゴリで絞るという条件のため、これを指定すると、指定したカテゴリの投稿にだけカスタムフィールドが出てくる、という設定になってしまいます。
>
> [WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法 | エス技研](https://blog.s-giken.net/254.html)

とのことで大変参考になりました。

**「公開」をクリックすると保存されます。**

## Usage

カスタムフィールドにデータを入力し、値を取り出してみましょう。

今回の仕様ですと `get_field(field_name, category_term_ID)` が必要そうです。

> * [ACF | get_field()](https://www.advancedcustomfields.com/resources/get_field/)

“`php:functions.php
if ( is_archive() && function_exists( ‘get_field’ ) ) {
$post_category = get_the_category();
$category_id = $post_category[0]->cat_ID;
$title = get_field( ‘archive_head_title’, ‘category_’ . $category_id );
}
“`

`is_archive()` でアーカイブページであるか、`function_exists( ‘get_field’ )` でプラグインが有効であるかをチェックすると良さそうです。

以上でアーカイブページ表示時に `$title` に値が入るようになりました。
[/markdown]