acf_write_json_field_group()


WordPressの関数acf_write_json_field_group()は、Advanced Custom Fields(ACF)のフィールドグループをJSONファイルとして保存するために使用されます。

構文

acf_write_json_field_group( int $post_id );
  • $post_id (int) — 保存したいフィールドグループの投稿ID。

例 1: フィールドグループの保存

フィールドグループをJSON形式で保存する基本的なコードの例です。get_the_ID()で現在の投稿IDを取得し、それを引数として渡します。

acf_write_json_field_group( get_the_ID() );

例 2: 特定のフィールドグループを保存

特定の投稿IDを指定して、フィールドグループをJSON形式で保存します。ここではID「123」の投稿を使用します。

acf_write_json_field_group( 123 );

例 3: 管理画面での自動保存

フィールドグループが変更されたときに、自動的にJSON形式で保存するコードの例です。管理画面でフィールドグループを保存した際に呼び出されます。

function my_acf_save_field_group( $post_id ) {
    acf_write_json_field_group( $post_id );
}
add_action( 'acf/save_post', 'my_acf_save_field_group', 20 );

例 4: 保存先ディレクトリの指定

保存するJSONファイルのディレクトリを指定する方法です。このコードは、デフォルトのディレクトリではなく、カスタムディレクトリに保存します。

add_filter( 'acf/settings/save_json', function() {
    return get_template_directory() . '/acf-json';
});
acf_write_json_field_group( get_the_ID() );

例 5: 特定の条件での保存

特定の条件を満たした場合にのみ、フィールドグループを保存します。例えば、カスタム投稿タイプが「my_custom_post」である場合のみ保存します。

function my_conditionally_save_field_group( $post_id ) {
    if ( 'my_custom_post' === get_post_type( $post_id ) ) {
        acf_write_json_field_group( $post_id );
    }
}
add_action( 'acf/save_post', 'my_conditionally_save_field_group', 10 );

注意点:

  • この関数を使用する際は、保存先のディレクトリに書き込み権限が必要です。
  • 投稿IDが正しく指定されていないと、保存されません。