Advanced Custom Fieldsを取得して表示する方法

5687 Views
WordPressPHPAdvanced Custom Fields
Advanced Custom Fieldsを取得して表示する方法

前回の記事でAdvanced Custom Fieldsの設定方法をご紹介したので、今回はその設定したカスタムフィールドを取得して表示(出力)する方法をご紹介したいと思います!

前回の記事
Advanced Custom Fieldsを使いこなそう

投稿以外のカスタムフィールドを取得する方法をご紹介

SNSでシェア♪

スポンサーリンク

コピペ用コードまとめ

説明不要!
カスタムフィールドの呼び出し方忘れちゃった!
って方用のコピペ用コードです。

 

基本的な出力方法

Advanced Custom Fieldsには出力方法が2つあり、

となります。

ここで注意点として、
・投稿
・固定ページ
・カスタム投稿
で「the_field()」「get_field()」をhave_posts()のループないで使う場合は「$post_id」は不要です。
※$post_idを入れても動きます

私は変数に格納して使うことが多いですが、特にその変数を他で使う予定がないのであれば変数に格納せずに出力しても問題なと思います!

以下「get_field()」を使った方法でご紹介したいと思います。

 

フィールドタイプ:テキスト

テキストの表示はシンプルです。

で表示が可能です。

「empty()」関数は、変数の文字が空かどうかを判定します・
今回は変数内に文字列があれば表示するという判定になります。

 

フィールドタイプ:テキストエリア

こちらは「テキスト」と同様の方法で出力されます。
改行が自動で含まれて表示されます。

となります。

 

フィールドタイプ:数値

こちらは「テキスト」と同様の方法で出力されます。

となります。

 

フィールドタイプ:メール

こちらは「テキスト」と同様の方法で出力されます。

となります。

 

フィールドタイプ:パスワード

こちらは「テキスト」と同様の方法で出力されます。

これ、入力したパスワードが文字列として表示れます。
使い所が思い浮かびません、、、

 

フィールドタイプ:Wysiwygエディタ

こちらは「テキスト」と同様の方法で出力されます。

となります。

 

フィールドタイプ:画像

こちらは「テキスト」とは出力方法が変わります。

となります。

「isset()」で指定した「サイズの名前」の画像が実際に生成されているかをチェックしています
これをしたいとエラーが表示されることがあります。

変数「$img」をvar_dumpすると取得してきた情報が一覧で表示されるので使用したい項目を抽出して利用できます。

上記はカスタムフィールドの返り値を「画像オブジェクト」に設定している時の使い方
返り値を「画像URL」の場合はそのままechoできます。

 

フィールドタイプ:ファイル

こちらは「テキスト」とは出力方法が変わります。

となります。

変数「$file」をvar_dumpすると取得してきた情報が一覧で表示されるので使用したい項目を抽出して利用できます。

 

フィールドタイプ:セレクトボックス

こちらは「テキスト」と同様の方法で出力されます。

となります。

マルチタイプにすることで複数選択させることもできますが、その場合は出力方法が異なります。
そのため、マルチタイプを利用したい場合は次に出てくる「チェックボックス」の方も検討してみてください。
※確認していませんが、記憶上チェックボックスと同じ方法でマルチタイプを出力できた気もします

 

フィールドタイプ:チェックボックス

こちらは「テキスト」とは出力方法が変わります。

となります。

3行目で取得してきた変数「$checkbox」内に配列が存在するかどうかを「count()」でチェックしています。

 

フィールドタイプ:ラジオボタン

こちらは「テキスト」と同様の方法で出力されます。

となります。

 

フィールドタイプ:真/偽

こちらは「テキスト」とは出力方法が変わります。

となります。

これはそのまま表示するというよりは、条件分岐に使用されることが多いと思います。

 

フィールドタイプ:ページリンク

こちらは「テキスト」とは出力方法が変わります。

となります。

設定時にページリンクを複数する予定がなくても「複数の値を選択できるか?」を「はい」にしておくことで、出力がしやすくなります。
※URLのみしか取得できないので、タイトルも取得したい場合はフィールドタイプ:投稿オブジェクトを利用します

 

フィールドタイプ:投稿オブジェクト

こちらは「テキスト」とは出力方法が変わります。

となります。

設定時に投稿オブジェクトを複数する予定がなくても「複数の値を選択できるか?」を「はい」にしておくことで、出力がしやすくなります。

 

フィールドタイプ:関連

こちらは「テキスト」とは出力方法が変わります。

となります。

 

フィールドタイプ:タクソノミー

こちらは「テキスト」とは出力方法が変わります。

となります。

 

フィールドタイプ:ユーザー

こちらは「テキスト」とは出力方法が変わります。

となります。

設定時にユーザーを複数する予定がなくても「フィールドタイプ」を「Multi Select」にしておくことで、出力がしやすくなります。

 

フィールドタイプ:Google Map

こちらは「テキスト」とは出力方法が変わります。

となります。

 

フィールドタイプ:デイピッカー

こちらは「テキスト」と同様の方法で出力されます。

となります。

出力される文字列は設定時の「フォーマットを保存する」の内容が表示されます。

 

フィールドタイプ:カラーピッカー

こちらは「テキスト」と同様の方法で出力されます。

となります。

 

まとめ

基本的には「get_field()」をechoするだけで使えますが、
・画像
・ファイル
・チェックボックス
・真/偽
・ページリンク
・投稿オブジェクト
・関連
・タクソノミー
・ユーザー
・Google Map
だけは変数格納後にオブジェクトなり配列はループで回してechoする必要があります。

困った時は変数を「var_dump()」すれば何が取れるのかわかるので焦らず一つ一つ分解していきましょう!

 

P.S.
気が向いたらタクソノミーやユーザーに設定したカスタムフィールドの取得方法も記事にしたいと思います。

カテゴリーやカスタムタクソノミーのカスタムフィールド を取得して表示する方法」の記事を書きました。

SNSでシェア♪

スポンサーリンク

関連記事