Contact us
『ホームページ制作の相談をしたい』『もっとたくさん商品を売りたい』等、ご要望をお伝えくださいませ。
疑問に思っていること、お困りごと、具体的な内容が未定でも、まずはお気軽にご相談くださいませ。
Advanced Custom Fields(ACF)とは、WordPressの投稿・固定ページなどに、用途に合わせたカスタムフィールドを追加・管理できるWordPressプラグインです。テキスト、画像、選択肢などの入力項目を「フィールドグループ」として設計し、条件に応じて編集画面へ表示できます。[1][2][7]
WordPress本体にも「カスタムフィールド(post meta)」の仕組みがあります。[4] ACFはその仕組みを利用しやすい管理画面とAPIを提供し、Webサイトで扱う情報を構造化して管理しやすくします。[1]
用語 | 読み方 | 分類 | 主な用途 | 代表的な仕組み |
|---|---|---|---|---|
Advanced Custom Fields(ACF) | アドバンスト カスタム フィールズ | WordPressプラグイン | WordPressの入力項目・構造化データを拡張 | フィールド、フィールドグループ、Location Rules、API |
通常のWordPressでは、投稿タイトル、本文、アイキャッチ画像などの基本的な入力欄を使ってコンテンツを作成します。
一方、企業サイトでは次のような「本文とは分けて管理したい情報」がよくあります。
ACFを利用すると、こうした情報をそれぞれ専用の入力項目として用意できます。公式ドキュメントでは、ACFをWordPressの編集画面へ追加のコンテンツフィールドを追加するプラグインとして説明しています。[1]
WordPressには投稿に追加情報を保存するpost metaの仕組みがあり、WordPress Developer Resourcesでも、post metaが管理画面上では「Custom Fields」と呼ばれることが説明されています。[4]
WordPressのCustom FieldsはWordPress本体に備わる仕組みで、ACFは表示するフィールドや入力UI、表示条件を設定しやすくします。[1]**[4]
ACFでは、複数のカスタムフィールドを「フィールドグループ」としてまとめます。
公式ドキュメントでは、フィールドグループには次の要素が含まれると説明されています。[2]
例えば「導入事例」というカスタム投稿に、
を持たせたい場合、これらをひとつのフィールドグループとして作成できます。
Location Rulesは、そのフィールドグループをWordPress管理画面のどこに表示するかを決める条件です。[2]**[8]
例えば、
など、コンテンツに応じて必要な入力項目だけを表示できます。
これにより、更新担当者が「このページではどの情報を入力すればよいか」を理解しやすい管理画面を作れます。
ACFには、さまざまなデータを入力するためのフィールドタイプがあります。公式のResource Centerでは、テキスト、画像、選択項目、日付、URL、Relationship、Post Objectなど多数のフィールドタイプが案内されています。[7]
用途に応じて例えば次のように使い分けます。
管理したい情報 | フィールドの例 |
|---|---|
短い文字情報 | Text |
長文 | Textarea / WYSIWYG |
画像 | Image |
選択肢 | Select / Radio Button / Checkbox |
日付 | Date Picker |
URL | URL |
真偽値 | True / False |
他の投稿との関連 | Relationship / Post Object |
同じ「文字を入力する情報」でも、URLならURL専用、日付なら日付専用のフィールドを使うことで、入力方法やデータの扱いを統一しやすくなります。
get_field() で値を取得するACFには、登録したフィールドの値を取得するためのAPIがあります。
代表的な get_field() は、指定したフィールドの値を取得する関数です。公式ドキュメントでは、フィールド名またはフィールドキーを指定し、必要に応じて対象の投稿IDを指定できると説明されています。[3]
例えば、company_name というフィールドを作成した場合、テーマ側では次のように値を取得できます。
$company_name = get_field('company_name');
ACFの get_field() 公式ドキュメントでは、取得した値を出力する際には、内容に応じた適切なエスケープ処理を行うよう注意が記載されています。[3]
値が文字列なのかURLなのかHTMLを含むのかによって、使うエスケープ関数は異なります。
ACFを使うこと自体が、表示時のセキュリティ処理を不要にするわけではありません。テーマやプラグイン側で、出力するデータの種類に合わせて扱います。
カスタムフィールドとカスタム投稿タイプは役割が異なります。
例えば「スタッフ」を独立したコンテンツとして管理するなら「スタッフ」というカスタム投稿タイプを作り、その中に「役職」「所属」「プロフィール写真」などのカスタムフィールドを追加する設計が考えられます。
現在のACFはカスタムフィールドだけでなく、管理画面からカスタム投稿タイプやカスタムタクソノミーを登録する機能も提供しています。ACF公式は、この機能をACF 6.1から提供していると説明しています。[5]
ただし、カスタム投稿タイプとカスタムフィールドの概念上の役割が同じになるわけではありません。サイトの情報設計に合わせて使い分けます。
ACFには無料版とPRO版があり、一部の高度なフィールドや機能はPROで提供されています。
例えば、同じ構造の入力欄を必要な数だけ繰り返せる「Repeater」フィールドは、ACF公式ドキュメントでACF PROの機能として案内されています。[6]
そのため、サイト設計時には「必要な入力項目が無料版で足りるか」「繰り返し構造や高度なコンテンツ設計が必要か」を確認します。
本文エディターへ毎回自由形式で情報を書かせるのではなく、「価格」「日付」「URL」「画像」など項目を分けることで、入力形式を統一しやすくなります。
データを専用フィールドに保存しておけば、テーマ側で表示位置やデザインを変更しても、登録済みのデータを再利用しやすくなります。
例えば店舗住所を専用フィールドにしておけば、詳細ページだけでなく一覧、地図、構造化データなど別の表示にも利用できます。
Location Rulesを利用し、必要なページ・投稿タイプにだけ必要なフィールドを表示できるため、更新担当者向けの管理画面を整理できます。[2]
フィールドを増やすこと自体は簡単ですが、似た意味のフィールドが乱立すると管理しにくくなります。
実装前に、
を整理してからフィールドを設計すると、後からの変更を抑えやすくなります。
ACFでフィールドを作るだけでは、サイト上の希望する位置へ自動的にすべて表示されるわけではありません。
テーマ・テンプレート側で get_field() などを利用し、どの値をどこに表示するか実装するのが一般的です。[3]
そのためACFは、「管理画面で項目を作る部分」と「フロントエンドで表示する部分」をセットで設計します。
※2026年9月28日確認
『ホームページ制作の相談をしたい』『もっとたくさん商品を売りたい』等、ご要望をお伝えくださいませ。
疑問に思っていること、お困りごと、具体的な内容が未定でも、まずはお気軽にご相談くださいませ。