Loading...

2023年6月14日

ACFのフィールドをLocal JSONで簡単に同期管理!【WordPress】

Advanced Custom Fields(ACF)とはWordPressを使ったサイト制作の時に重宝しているプラグインです。
ACFは、投稿の時に毎回入力する項目や別途用意したいタイトルなどを予め入力欄として設定し、投稿画面にフィールドを作成することが可能なプラグインです。
また、有料版の場合は投稿タイプを作成したり、カスタムタクソノミーを作成する機能もあります。

ACFで作成した料理メニューのフィールド例

便利なACFですが、作成したフィールドは全てデータベースに保存されます。
いざテスト環境から本番環境へテーマを移行したけれど、ACFのフィールドが反映できていなかった!なんて事はありませんか?

ここで役に立つのが、ACFのLocal JSON。
データベースから手動でデータ移行も可能ですが、データベースを開かないといけない、更新ごとに手動で移行する必要があるなど手間がかかります。
Local JSONを使えばテーマ移行と同時にACFの同期も完結できます。
今回はAdvanced Custom Fields(ACF)をLocal JSONで簡単に同期管理できる設定方法をご紹介します。

Local JSONを設定

同期管理するためには次の3つを設定します。

・local-jsonファイル(テーマフォルダ内の任意の場所、任意の名前)
・書き出し用のフィルター (functions.php内に記述)
・読み込み用のフィルター (functions.php内に記述)

local-jsonファイル

ACFのJSONデータを保存するために利用します。
フォルダ名は任意で登録可能で、ファイルは1つだけ利用することができます。
初回設定時はフォルダ内は空のままで大丈夫です。今後、同期利用をしていくうちにここにJSONデータが保存されていきます。

書き出し用のフィルター 

  1. <?php
  2. add_filter('acf/settings/save_json', 'my_acf_json_save_point');
  3. function my_acf_json_save_point( $path ) {
  4. // update path
  5. $path = get_stylesheet_directory() . '/my-custom-folder';
  6. // return
  7. return $path;
  8. }
  9. ~

function.php 等に上記フィルターを記述します。
「/my-custom-folder」はlocal-jsonファイルの階層・名称に合わせて調整します。

読み込み用のフィルター

  1. <?php
  2. add_filter('acf/settings/load_json', 'my_acf_json_load_point');
  3. function my_acf_json_load_point( $paths ) {
  4. // remove original path (optional)
  5. unset($paths[0]);
  6. // append path
  7. $paths[] = get_stylesheet_directory() . '/my-custom-folder';
  8. // return
  9. return $paths;
  10. }
  11. ~

書き出し用フィルター同様、function.php 等に上記フィルターを記述します。
「/my-custom-folder」はlocal-jsonファイルの階層・名称に合わせて調整します。

Local JSONが適用できているかのチェック方法

上記ファイルを用意したら、Local JSONが実際に適用されているか確認します。
WordPressの管理画面やテーマフォルダに保存したlocal-jsonファイルで確認できます。

書き出し設定のチェック方法

管理画面ACFの設定画面を開き、フィールドグループ一覧を確認します。
列を見ると、同期されている場合は「キー」「ローカルJSON」といった項目が追加されています。この項目が確認できれば、JSON設定が利用できている状態になります。

ACFフィールドグループ一覧

テーマフォルダにあるJSONのチェック方法

次に、テーマフォルダにあるlocal-jsonファイルを確認します。
フォルダ内には同期を実行したJSONデータが追加されます。キーと同じ名称のJSONがあればJSON設定が利用できている状態になります。

local-jsonファイルにキーの名称と同じデータが保存されています。

読み込み設定のチェック方法

local-jsonファイルに読み込みするJSONデータを保存します。
次に管理画面のACFを開くと「同期が利用できます」という項目があります。
選択すると、読み込み可能なフィールドグループ一覧が表示されるため、フィールドタイトル行右端の「インポート」を選択します。

読み込み可能なACFフィールド一覧

画面変遷後、フィールドグループ一覧に読み込みしたフィールドが追加されていることを確認できます。

「インポート」選択後のフィールド一覧

終わりに

WordPressはテスト環境から本番環境の移行をする場合やサイト移行の場合、フォルダを間違いなく移行する必要があります。
少しでもミスを減らすために、管理しやすい形で同期ができるLocal JSONはとても便利でおすすめです。

Local JSONはプラグイン公式サイトでも利用方法を解説しています。
より詳しい解説を見てみたいといった方はぜひご確認ください。

お問い合わせ

案件のご依頼やご相談などお気軽にご相談ください。

ご依頼やご相談はこちらから
ページトップへ
Menu