こんにちは、Webディレクターのエリカです。
タイトルにある「Advanced Custom Fields(ACF)プラグイン」というのは、LIGがWordPressを使ったWebサイト制作をさせていただく場合に必ず使用するプラグインのうちのひとつです。
基本的にはカスタムフィールドをコントロールすることにより投稿データを拡張するためのものなのですが、実にさまざまなユーザーインターフェースが用意されており、各種フックも充実していたりと、至れり尽くせりなプラグインです。個人的には「ひとつしかプラグインを使ってはだめ」といわれたら、迷うことなくこのプラグインを選ぶと思います。
基本的な使い方についてはいろいろなところで語り尽くされていますので、今回は、ACF Version5からの新機能「Local JSON」についてご紹介したいと思います!
目次
「Local JSON」とは?
ACFを利用する場合、「どの投稿をどう拡張するか」といったフィールドグループの設定を行っていくことになります。
たとえば「一日一食ラーメンを食べる」といったブログ記事を投稿する際に、お店の名前や場所、味の評価などをカスタムフィールドに保存しておきたいという場合があるかもしれません。「Local JSON」を使えば、下記のような入力フォームを用意することができます。
このようなフィールドグループの設定はデータベースに保存されていくのですが、開発環境や検証環境、本番環境などで設定の同期をどうしたらよいか、ACFを利用していて疑問に感じていた方もいらっしゃるかもしれません。
インポートやエクスポートも可能ですが、「Local JSON」はその同期をjsonファイルを介して行ってくれる機能になります。
「Local JSON」の利用準備
テーマディレクトリの中に、jsonファイルを保持するためにacf-jsonというディレクトリを作成し、WordPressが書き込み可能な権限を設定しておきましょう。
このディレクトリにフィールドグループ単位でjsonファイルが書き出されていきます。ちなみにこのディレクトリは任意の名前・場所に変更することも可能です。
フィルタは以下のものを利用します。
書き出しディレクトリの変更用フィルタ
jsonファイルの書き出しを任意のディレクトリに変更することができます。
<?php
add_filter('acf/settings/save_json', 'my_acf_json_save_point');
function my_acf_json_save_point( $path ) {
// update path
$path = get_stylesheet_directory() . '/my-custom-folder';
// return
return $path;
}
?>
読み込みディレクトリの変更用フィルタ
jsonファイルの読み込みも任意のディレクトリに変更することができます。また、追加することも可能です。ACFを利用したテーマやプラグインを作成する際の、専用のフィールドグループが簡単に用意できるようになります。
<?php
add_filter('acf/settings/load_json', 'my_acf_json_load_point');
function my_acf_json_load_point( $paths ) {
// remove original path (optional)
unset($paths[0]);
// append path
$paths[] = get_stylesheet_directory() . '/my-custom-folder';
// return
return $paths;
}
?>
以上で準備は完了です。
管理画面からの操作
管理画面のACFの設定を変更すると、先ほど指定したディレクトリに .json ファイルが書き出されるのが確認できると思います。
そして、管理画面には何の設定もない場合、もしくはこのファイルと差分がある場合には、下記のように「利用可能な同期」が表示され、この .json の内容と同期することが可能になります。
同期を行うことにより、複数の開発環境などがある場合でも、この .json ファイルを介して、設定を完全に同期することができます。
「Local JSON」のメリット
これまではACFの設定はすべてデータベースに保存されていました。つまり、ACFの設定の読み込みの際にはデータベースへの問い合わせが必要だったわけです。ところが、この「Local JSON」を利用する場合は該当するファイルから設定が読み込まれるので、キャッシュのように機能してくれることになります。
また、ファイルベースでの管理になるので、バージョン管理も容易になってきますね。
まとめ
いかがでしたか? LIGブログではWordPressに関する記事がたくさん書かれてきましたが、ACFプラグインについての記事はほとんどありませんでしたので、基本的な機能も含めてまた紹介させていただきたいと思います。
ACF、素晴らしいプラグインです。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。