obara
WordPressプラグイン「Advanced custom field」の基本的な使い方と用例
前回の記事でAdvanced custom field(以下ACF)をご紹介しましたが、
今回はもう少し踏み込んでご紹介しようと思います。
■基本
・記述方法は「the_field()」と「get_field()」の二通り 値の内容を表示したいときは、the_field()を使います。the_field('my_custom_01');これで、現在表示している投稿の「my_custom_01」というキーの値を表示できます。 もしif文や変数などで使用する場合はget_field()を使用します。
$hoge = get_field('my_custom_01');入力されているか否かのチェックはget_field()で行います。 なので、私の使用頻度としては専らこちらの方です。 ・第二引数で投稿やページを指定することも可能
the_field('my_custom_01', 100);これで投稿IDが100の投稿(もしくはページ)の「my_custom_01」を表示出来ます。 この「the_field()」と「get_field()」の使い方・違いを理解すれば、 大体のことは出来ます!
■用例
私がよく使う使い方を用例にご紹介します。 ・フィールドタイプ:テキスト →ちょっとした入力項目を増やすときに使います。$text = get_field('my_custom_01'); if($text) : echo $text; endif;・フィールドタイプ:画像 →かなり重宝しています。返り値を画像IDにして使用しています。
$image = get_field('my_custom_02'); if($image) : $thumbnail = wp_get_attachment_image_src($image, 'full'); echo '</pre> <img src="'.$thumbnail[0].'" alt="'.get_the_title().'" width="'.$thumbnail[1].'" height="'.$thumbnail[2].'" /> <pre>'; endif;・フィールドタイプ:デイトピッカー →公開日の他に日付を持たせないといけない場合や、 投稿の内容で特定の日付までしか表示させない場合の値として利用できます。
$date = get_field('my_custom_03'); if($date) : $dateY = date('Y', strtotime($date)); $dateM = date('m', strtotime($date)); $dateD = date('d', strtotime($date)); $dateOrg = mktime(0, 0, 0, $dateM, $dateD, $dateY); if($dateOrg >= mktime(0, 0, 0, date('m'), date('d'), date('Y'))) : echo 'Y年m月n日までここの内容を出力します'; endif; endif;使い方次第でWordPressの入力画面がとても使いやすくなります。 経験上、クライアントに納品する際は、「ちょっと細かいかな?」ぐらいがちょうどいいです。 「誰が更新していくのか」「その人のウェブリテラシーはどれくらいか」 それを意識して管理画面を作っていくのも必要なことだと思います。 ぜひ色々と試行錯誤してみてください!
・ACFダウンロード先
WordPress公式プラグインディレクトリ
・開発者サイト
Advanced custom field