プラグインAdvanced custom fields(ACF)のacf/json/save_file_nameフィルタの使用方法・解説

概要

acf/json/save_file_name フィルタは、Advanced Custom Fields (ACF) のローカル JSON 機能によって保存されたファイルの名前を変更するために使用されます。このフィルタを利用することで、JSON ファイルの名前を任意の形式にカスタマイズでき、特定のプロジェクトや要件に適したファイル管理が可能になります。

このフィルタは以下のような機能を実装する際によく使用されます:
1. ファイル名に特定の識別子やバージョン番号を追加する。
2. 日付や時刻を含む動的なファイル名を生成する。
3. 管理画面でのユーザー理解を高めるためにファイル名を分かりやすくカスタマイズする。
4. 環境ごとに異なるファイル名のルールを実装する(例:開発環境、ステージング環境、本番環境)。
5. プラグインやテーマのバージョンをファイル名に反映させる。
6. 特定の条件に応じたファイル名の変更を行う。

構文

add_filter('acf/json/save_file_name', 'my_custom_json_file_name', 10, 2);

パラメータ

  • file (string): 保存される JSON ファイルの名前。
  • post_id (int|string): JSON ファイルを保存する際の関連するポスト ID。

戻り値

  • 変更後のファイル名 (string)。

対応するバージョン

  • ACF バージョン: 5.0.0 以降
  • WordPress バージョン: 4.0 以降

この関数のアクションでの使用可能性

アクション 使用可能
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプル 1: IDを含めたファイル名の変更

add_filter('acf/json/save_file_name', 'custom_json_file_name_one', 10, 2);
function custom_json_file_name_one($file, $post_id) {
    return 'acf-' . $post_id . '-data.json';
}

このサンプルでは、ファイル名にポスト ID を含めることで、個別のポストに関連するデータを示すファイル名を生成します。

サンプル 2: 日付を含むファイル名の生成

add_filter('acf/json/save_file_name', 'custom_json_file_name_two', 10, 2);
function custom_json_file_name_two($file, $post_id) {
    return 'data-' . date('Ymd') . '.json';
}

このサンプルでは、ファイル名に日付を追加することで、ファイルの作成日を反映させ、管理が容易になります。

サンプル 3: 環境に応じたファイル名の変更

add_filter('acf/json/save_file_name', 'custom_json_file_name_three', 10, 2);
function custom_json_file_name_three($file, $post_id) {
    $environment = 'staging'; // 環境を変更
    return $environment . '-acf-data.json';
}

このサンプルでは、環境のプレフィックスをファイル名に追加し、デプロイされた環境によってファイルを簡単に識別できるようにします。

サンプル 4: プラグインバージョンを反映する

add_filter('acf/json/save_file_name', 'custom_json_file_name_four', 10, 2);
function custom_json_file_name_four($file, $post_id) {
    return 'acf-v1.0.0-data.json'; // プラグインのバージョンを反映
}

このサンプルでは、プラグインのバージョンが組み込まれたファイル名により、バージョン管理が容易になります。

サンプル 5: カスタム識別子の追加

add_filter('acf/json/save_file_name', 'custom_json_file_name_five', 10, 2);
function custom_json_file_name_five($file, $post_id) {
    return 'custom-identifier-' . $post_id . '.json';
}

このサンプルでは、カスタムの識別子を含めたファイル名を生成することで、特殊なニーズに応じたファイル名を実現しています。

この関数について質問する


上の計算式の答えを入力してください