エス技研WordPress専科

WordPressの基本的な使い方から SEOの対応、プラグイン情報、カスタマイズ方法を解説します。


Advanced Custom Fieldsの関数の全部の使い方を調べてみた

      2015/12/27

Advanced Custom Fieldsの関数の全部

 

Advanced Custom Fieldsには多彩な関数が用意されている

 
Advanced Custom Fieldsには、登録したカスタムフィールドや投稿画面から入力した情報を取得し、テンプレートなどに編集するための関数が用意されています。
 
一番よく使うのは「get_field()」関数で、投稿画面から入力された値を取得する際に使用します。
また、値を取得するだけではなくそのまま出力まで実行してくれる「the_field()」関数や、フィールド単位ではなく投稿全体の全てのカスタムフィールドの値を取得してきてくれる「get_fields()」関数なども用意されています。
 
Advanced Custom Fieldsは便利で高機能なプラグインですので、全部の機能を使いこなすのは難しいですが、まずはどんなことができるのか、それを確認する上でも用意されている関数の使い方を調べてみましたのでご紹介します。
 
 

Advanced Custom Fieldsの関数の全部・目次

 
  get_field()
  get_fields()
  get_field_object()
  get_field_objects()
  get_sub_field()
  get_sub_field_object()
  get_row_layout()
  have_rows()
  has_sub_field()
  the_field()
  the_sub_field()
  the_repeater_field()
  the_flexible_field()
  Shortcode()
  update_field()
  update_sub_field()
  acf_set_options_page_menu()
  acf_set_options_page_title()
  acf_set_options_page_capability()
  acf_add_options_page()
  acf_add_options_sub_page()
  acf_form()
  acf_settings()
 
 

Advanced Custom Fieldsの関連記事・目次

 
カスタムフィールド決定版!Advanced Custom Fields全項目完全解説・管理画面編
Advanced Custom Fieldsの全項目解説・公開側表示編集編
WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法
Advanced Custom Fields(ACF)のアドオン・ギャラリーの使い方解説
Advanced Custom Fields(ACF)のアドオン・繰り返しフィールドの使い方解説
 
 

Advanced Custom Fieldsの関数の全部の解説

 
 

get_field()

Advanced Custom Fieldsで登録した入力フィールドの値を編集として取得する際に使用する関数です。
取得できる値は、入力フィールドの条件によって、変数、配列、オブジェクトなど様々です。
「the_field()」は、「echo get_field ( $field_name );」と同じ機能です。
 

 
$field_name
取得する入力フィールドの「フィールド名」を指定します。必須項目です。
 
$post_id
取得する POST IDを指定します。必須項目ではなく、省略をすると現在表示中のページの POST IDが編集されたものとして処理されます。
投稿 IDだけではなく、オプション、タクソノミー、ユーザなども登録できます。
 
$format_value
取得した値をフォーマット対応するか、否かを設定します。trueか falseが設定でき、省略した場合は trueになります。
フィールドタイプが「テキストエリア」などで wpautop()や nl2br()などでフォーマットするかどうかを指定する項目で、trueの場合はフォーマットが適用されます。
 

 
この関数は下記の記事でも紹介しています。
Advanced Custom Fieldsの全項目解説・公開側表示編集編 ・Advanced Custom Fieldsの入力値を取得する関数
WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法
 
 
ちなみに、第 3引数に falseを指定すると結果が変化します。
 

 
上記のように画像のオブジェクトを取得できる場合でも「false」を設定することで画像 IDだけを取得することができます。
詳細は「Advanced Custom Fieldsの全項目解説・公開側表示編集編/フィールドタイプ・画像」を参照してみてください。
 
また、フィールドタイプがテキストエリア、WYSIWYGなどの自動処理がある項目に対しては、その自動編集処理を無効にすることもできます。
Advanced Custom Fieldsの全項目解説・公開側表示編集編/フィールドタイプ・テキストエリア」を参照してみてください。
 
なお、第 3項目を指定したいけど、第 2項目は現在の PostIDを指定したくて空にしたままにしておきたい、という場合は、第 2項目は「false」を指定してください。
(「””」や「null」でも動くようではありますが、マニュアル上は「false」を指定するように、と書いてありますね。)
 
 
 

get_fields()

投稿画面から入力されたカスタムフィールドの値(valueの値)の全てを取得する関数です(ただし、「_」(アンダースコア)で始まるカスタムフィールドは除く)。
 
「get_field()」関数は、カスタムフィールドのフィールド名を指定して値を取得する関数でしたが、「get_fields()」関数は、全てのカスタムフィールドの値を一括して取得できます。
フィールドごとに一つ一つ取得するのが面倒なほどに項目が多い場合などは、「get_fields()」関数を使ってすべての値を取得した上で、各項目に編集していくという方法もいいのではないでしょうか。
 

 
$post_id
「get_field()」関数と同じです。
取得する POST IDを指定します。必須項目ではなく、省略をすると現在表示中のページの POST IDが編集されたものとして処理されます。
投稿 IDだけではなく、オプション、タクソノミー、ユーザなども登録できます。
 
 
 

get_field_object()

フィールドグループで登録した情報も含めてカスタムフィールドの値を取得できます。
 
例えば「Advanced Custom Fieldsの全項目解説・公開側表示編集編/フィールドタイプ・セレクトボックス」でも掲載していますが、セレクトボックスの値を取得すると下記の様な値が取得できます。
 

 
フィールドタイプ「テキスト」などではほとんど必要となる場面はありませんが、「選択肢」タイプで、「キー」と「値」が違う場合にはこの関数が必要となります。
また、Google Mapなどでデフォルトの地図の Zoomなどを取得したい場合にも利用できます。
 

 
$field_key
get_field()関数と同じく取得するカスタムフィールドの「フィールド名(name)」を編集するか、「key」を編集します。必須項目です。
 
$post_id
「get_field()」関数と同じように、取得する POST IDを指定します。必須項目ではありません。
 
$options
オプションを配列で設定します。
例えば、「array ( load_value => false )」などです。「load_value」のデフォルトは「true」です。
 
 

 
 
使い方に関しては「Advanced Custom Fieldsの全項目解説・公開側表示編集編/Advanced Custom Fieldsの入力値を取得する関数」にも記載をしています。
 
ちなみに、オフィシャルサイトには「$field_key」を指定する際、「key」と「name」のどちらを設定する方がいいのかの説明が書かれていますが、英語のマニュアルを読んでもイマイチ正確な意味が取れないため、ここに記載するのは止めにしました。
 
「name」より「key」を指定する方がよさそうだという雰囲気は分かりますが...
 
 
 

get_field_objects()

 
投稿画面から入力されたカスタムフィールドの値(valueの値)だけでなく、カスタムフィールドとして設定されている値も含めて全てを取得する関数です(ただし、「_」(アンダースコア)で始まるカスタムフィールドは除く)。
 
「get_field_object()」の全項目版が「get_field_objects()」です。
「get_field()」の全項目版が「get_fields()」であるのと同じ理解で OKです。
 

 
$post_id
「get_field()」関数と同じように、取得する POST IDを指定します。必須項目ではありません。
 
 
 

get_sub_field()

 
有料アドオンの「repeater field(繰り返しフィールド)」と「flexible content field(柔軟コンテンツフィールド)」で使われるサブフィールドの値を取得するために使用します。
これらのサブフィールドをループさせることで現在の行からサブフィールドの値を取得することができます。
 

 
$sub_field_name
サブフィールドの名称を指定します。必須項目です。
 
 
 

get_sub_field_object()

 
「has_sub_field()」関数のループ内で取得されるサブフィールドのオブジェクトを取得する関数です。
 
「get_sub_field()」と「get_sub_field_object()」の関係は、「get_field()」と「get_field_object()」の関係と同じ感じです。
 

 
$field_key
「get_field()」関数と同じく取得するカスタムフィールドの「フィールド名(name)」を編集するか、「key」を編集します。必須項目です。
 
 
 

get_row_layout()

 
「the_flexible_field()」関数のループ内の現在のレイアウト(文字列)を返します。
「flexible content field」は、任意の順序でページ上に配置することができ、様々なレイアウトオプションを持つことができます。
 
この関数は引数を持ちません。
 
 
 

have_rows()

「have_rows()」関数は、「repeater field」や「flexible content field」が値を持っているか否かを判定します。
trueか falseを返す Boolean関数です。
 
この関数は「has_sub_fields()」関数の置き換えです。しかし、いくつか違いがあります。
その違いは、この関数では実行されないので、「the_row()」関数を使用する必要がある行で実行することです。
 
「have_rows()」関数と「the_rows()」関数の使用は、「have_posts()」関数と「the_posts()」関数の関係に合わせる意図を持っています。
 
※この関数は Ver.4.3.0で追加されました。
 
 
 

has_sub_field()

「has_sub_field()」関数は、「repeater field」や「flexible content field」の「while」ループ処理内で使用され、「get_sub_field()」「the_sub_field()」で利用する値を提供します。
 
※この関数は、「the_repeater_field()」関数と「the_flexible_field()」関数の代替品として、Ver.3.3.4で追加されされました。
 

 
$field_name
「repeater field」や「flexible content field」のループさせるフィールド名を指定します。必須項目です。
 
$post_id
「get_field()」関数と同じように、取得する POST IDを指定します。必須項目ではありません。
 
 
 

the_field()

Advanced Custom Fieldsで登録した入力フィールドの値を取得し、出力まで行う関数です。「echo get_field ( $field_name );」と同じ機能です。
 

 
$field_name
取得する入力フィールドの「フィールド名」を指定します。必須項目です。
 
$post_id
取得する POST IDを指定します。必須項目ではなく、省略をすると現在表示中のページの POST IDが編集されたものとして処理されます。
投稿 IDだけではなく、オプション、タクソノミー、ユーザなども登録できます。
 

 
この関数は下記の記事でも紹介しています。
Advanced Custom Fieldsの全項目解説・公開側表示編集編 ・Advanced Custom Fieldsの入力値を取得する関数
WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法
 
 
 

the_sub_field()

有料アドオンの「repeater field(繰り返しフィールド)」と「flexible content field(柔軟コンテンツフィールド)」で使われるサブフィールドの値を取得し、編集するために使用します。
これらのサブフィールドをループさせることで現在の行からサブフィールドの値を取得することができます。
 
「echo get_sub_field();」と同じ機能です。
 

 
$sub_field_name
サブフィールドの名称を指定します。必須項目です。
 
 
有料アドオンについては「カスタムフィールド決定版!Advanced Custom Fields全項目完全解説・管理画面編/Advanced Custom FieldsのAdd-Ons」も参考にしてみてください。
 
 
 

the_repeater_field()

 
「the_repeater_field()」関数は、Ver.3.3.4以降の使用は推奨されていません。
「have_rows()」関数を使ってください。
 
 
 

the_flexible_field()

「the_flexible_field()」関数は、廃止されました。将来削除される可能性があるため、「has_sub_field()」関数に置き換えてください。
 
 
 

Shortcode

投稿の編集画面(Wysiwyg編集画面)で、カスタムフィールドとして保存されている値をショートコードを利用して編集することもできます。
 

 
ショートコードマーカーは、「the_field()」関数と同じ動作をします。
指定できる引数は以下の通りです。
 
field
フィールド名を指定します。
 
post_id
編集する POST IDを指定します。必須項目ではなく、指定しない場合は現在の投稿の値が編集されます。
 
ショートコードの使い方については「WordPress投稿にPHPを記述するショートコードの使い方add_shortcode」にも記事を書いていますので参考にしてください。
 
 
 

update_field()

フィールドの値を更新するために使用します。
 

 
$field_key
更新する値のフィールド名を指定します。指定は「name」か「key」で指定します。必須項目です。
 
$value
更新する値を編集します。必須項目です。
 
$post_id
「get_field()」関数と同じように、更新する POST IDを指定します。必須項目ではありません。
 

 
「update_field()」関数は、見た目の値が更新されるのではなく、データベースの値が更新されます。
 
 
 

update_sub_field()

サブフィールドの値を更新するために使用します。
「have_rows()」関数のループ内で使用される場合は、現在の行のサブフィールドの値を更新します。
「have_rows()」関数のルールの外で使用する場合は、行と親の位置を指定して値を更新します。
 

 
$selector
サブフィールド名、キー、または、行と親の位置を配列で指定します。必須項目です。
 
$value
更新する値を編集します。必須項目です。
 
$post_id
「get_field()」関数と同じように、更新する POST IDを指定します。必須項目ではありません。
 
 
 

acf_set_options_page_menu()

「acf_set_options_page_menu()」関数は、アドオンの「オプションページ」のメインオプションページメニュー項目を変更する際に組み合わせて使用する関数です。
この関数は、functions.php内で使用し、initアクションより前に実行する必要があります。
 
【警告】
更新プロセス中に、この機能は functions.phpファイルで使用することはできません。
Webサイトが壊されないようにするために、関数を実行する際には「function_exists()」関数で存在確認をする必要があります。
 

 
$menu_name
親のオプションページのメニュー項目の名前を指定します。必須項目です。
 

 
 
 

acf_set_options_page_title()

「acf_set_options_page_title()」関数は、アドオンの「オプションページ」のメインオプションページタイトルを変更する際に組み合わせて使用する関数です。
この関数は、functions.php内で使用し、initアクションより前に実行する必要があります。
 
警告の内容は「acf_set_options_page_menu()」関数と同じです。
 

 
$menu_name
親のオプションページのメニュー項目の名前を指定します。必須項目です。
 

 
 
 

acf_set_options_page_capability()

「acf_set_options_page_capability()」関数は、アドオンの「オプションページ」のメインオプションページタイトルの権限を変更する際に組み合わせて使用する関数です。
この関数は、functions.php内で使用し、initアクションより前に実行する必要があります。
 
「capability」はオプションページへのアクセスを許可するユーザの種類と権限を参照します。
「ユーザーの種類と権限」については下記を参照してください。
 http://wpdocs.osdn.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90
 
警告の内容は「acf_set_options_page_menu()」関数と同じです。
 

 
$capability
親のオプションページのメニュー機能の名前を指定します。必須項目です。デフォルトは「edit_posts」です。
 

 
 
 

acf_add_options_page()

 
この機能は、管理画面のサイドバーに新しいオプションページを追加します。
 
オプションページで保存された全てのデータはグローバル変数になります。
これは、任意の特定の投稿、固定ページに付随しないことを意味しますが、wp_optionsテーブルに保存されます。
 
この関数は Advanced Custom Fields Pro 5.0.0以上が必要です。
この機能は、admin_menuアクション(優先度 99)より前に使用する必要があります。
 

 
$page
ページタイトル、または、設定の配列を指定します。
空白の場合はデフォルト設定が使用されます。
 
 
オプションページは、有料アドオンです。
有料アドオンについては「カスタムフィールド決定版!Advanced Custom Fields全項目完全解説・管理画面編/Advanced Custom FieldsのAdd-Ons」も参考にしてみてください。
 
 
 

acf_add_options_sub_page()

 
この機能は、アドオンの管理メニューに新しいサブページを追加するオプションページと組み合わせて使用します。
この機能は、functions.phpファイル内で使用するには initアクションの前に実行する必要があります。
 
警告として、「acf_set_options_page_menu()」関数と同じく、関数を実行する際には「function_exists()」関数で存在確認をする必要があります、と書かれています。
 
また、オプションページアドオンの Ver.1.1.0以上が必要です。
 

 
$page
下記の 2つの指定の方法があります。必須項目です。
 サブページの名前(タイトル)を指定する方法
 タイトル(必須)+メニュー、Slug、Parent、Capabilityを配列で指定する方法
 
・タイトル:サブページのタイトル
・メニュー:サブページメニュー名。タイトルのデフォルト。
・Slug:ページのスラグの名前。デフォルトのサニタイズタイトル。
・Parent:親のスラグを指定。デフォルトはオプションページのメインメニューのスラグ。
・Capability:ページ参照に必要な機能を提供します。デフォルトはオプションページのメインメニューの機能です。
 
 
 

acf_form()

この関数は、バージョンによって使用方法が異なります。この記事の内容は Ver.5の内容です。
 
この関数は、投稿を追加、更新するためのフォームを作成します。
このフォームをカスタマイズするための多くの設定方法があり、以下に説明するように「$options」配列を追加することにより設定することが出来ます。
 

 
$options
以下のオプションを 1つ以上配列で指定します。
 

 
この「acf_form()」関数は、データを入力するための入力フォームを作成しますが、データを保存するために必要なロジックは含まれていないことに注意が必要です。
このロジックは「acf_form_head()」関数という別の関数で処理されます。
フォームのデータを保存できるようにするには、HTMLが表示される前のページのテンプレートの上部に「acf_form_head()」関数を配置しておく必要があります。
 
 
 

acf_settings

 
このフックを使用することで、プラグインを通じて Advanced Custom Fieldsによって使用されるグローバル設定の配列を上書きすることが出来ます。
 
この関数は、Ver.3.5.4以上で利用できます。
 

 
 
使用例

 - WordPressのプラグイン

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload the CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

Advanced Custom Fields(ACF)のアドオン・ギャラリーの使い方解説

Advanced Custom Fieldsのアドオン・ギャラリーの解説記事。複数の画像を入力できる優れもので、画像のサイズ、容量などでの制限ができ、より厳密な管理が可能。

WordPressで WPtouchを入れたら「このウェブページにはリダイレクト ループが含まれています」と表示されてページが表示されなくなった

WPtouchを入れたら「このウェブページにはリダイレクト ループが含まれています」のエラーでページが表示されない。その解決法の解説です。

シンタックスハイライトの5システム比較のまとめ・WordPressでも使える

シンタックスハイライト5種の比較検討のまとめ記事。WordPressで使う目的だがプラグインの比較検討ではないのでどのサイトでも導入可能。

EWWW Image Optimizerで画像の圧縮でWordPressを高速化

ページ表示の高速化に使うEWWW Image Optimizerの紹介です。英語で書かれているために取っつきにくいですが設定は3カ所。画像の圧縮もワンクリック。超簡単!

WordPressで口コミサイト構築ならMulti Ratingがおススメ

口コミの評価点を投稿する機能に特化。評価点を複数設定することができ、投稿後の評価点を編集することができる数少ないプラグイン。日本語にも対応。おススメ。

カスタムタクソノミーをCustom Post Type UIで設定し編集する方法解説

カスタムタクソノミーを追加、管理するプラグインCustom Post Type UIの使い方の解説。プラグインの解説ではあるものの、カスタムタクソノミーの仕様の解説でもある。

ショートコードで簡単解決!WordPress固定ページにカテゴリ一覧を編集する方法

ショートコードを使って固定ページや投稿に特定のカテゴリ一覧を編集する処理を作りました。プラグインなしで30行くらいのソースコピペで実現できます!

SEO効果絶大!PVもアップするWordPressの高速化プラグイン元祖Lazy Load

Lazy Loadは、画像を最初にまとめて読み込むことで発生するスピードの遅延を防ぎ、必要な画像から順番に読み込むことでページの表示スピードを向上させるプラグインです。

Advanced Custom Fields(ACF)のアドオン・繰り返しフィールドの使い方解説

Advanced Custom Fieldsのアドオン・繰り返しフィールドについて解説。繰り返しフィールドは投稿者が入力フィールドを追加しながら情報を入力できるフィールドを提供。

highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適

Crayon Syntax Highlighterの代替案としてhighlight.jsを試してみた。highlight.jsは設置簡単で軽量なシンタックスハイライト。デザインもCSS変更だけの簡単変更。