ワードプレスのwp_save_revisioned_meta_fieldsフィルタの使用方法・解説

概要

wp_save_revisioned_meta_fields フィルタは、WordPress 内のポストリビジョンと呼ばれる機能に関連するもので、リビジョンとともに保存されるメタフィールドを制御する際によく使われます。このフィルタを使用することで、特定のメタフィールドをリビジョンに含めたり、除外したりすることができます。

よく使われる機能

  1. カスタムフィールドの管理
  2. 特定のメタデータのリビジョンにおける履歴の保持
  3. 不要なメタデータのリビジョンからの除外
  4. 異なる投稿タイプに応じたメタデータの調整
  5. セキュリティ対策としてのメタフィールドの制限
  6. リビジョンのエクスポート機能の拡張
  7. マルチサイト環境での特定の設定の適用
  8. デバッグやトラブルシューティングでのメタデータ管理

このフィルタは、WordPress 4.0 以降で使用可能です。フィルタが含まれているコアファイルのパスは wp-includes/revision.php です。

構文

add_filter('wp_save_revisioned_meta_fields', 'your_callback_function', 10, 2);

パラメータ

  • $meta_fields : 保存されるメタフィールドの配列。
  • $post : 対象のポストオブジェクト。

戻り値

  • 修正されたメタフィールドの配列。

関連する関数

wp_save_revisioned_meta_fields

非推奨のバージョン

特に非推奨または削除されたバージョンはありません。

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

アクション 使用例
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: カスタムメタフィールドをリビジョンに保存する

add_filter('wp_save_revisioned_meta_fields', function($meta_fields, $post) {
    $meta_fields[] = 'custom_meta_field';
    return $meta_fields;
});

このコードは、custom_meta_field をリビジョンに含めるようにメタフィールドの配列を修正します。

サンプルコード 2: 特定のメタフィールドを除外する

add_filter('wp_save_revisioned_meta_fields', function($meta_fields, $post) {
    $key = 'unwanted_meta_field';
    if (($key_index = array_search($key, $meta_fields)) !== false) {
        unset($meta_fields[$key_index]);
    }
    return $meta_fields;
});

このコードは、unwanted_meta_field をリビジョンから除外します。

サンプルコード 3: メタフィールドの名前を変更する

add_filter('wp_save_revisioned_meta_fields', function($meta_fields, $post) {
    foreach ($meta_fields as &$meta_field) {
        if ($meta_field === 'old_meta_field') {
            $meta_field = 'new_meta_field';
        }
    }
    return $meta_fields;
});

このコードは、old_meta_fieldnew_meta_field にリネームします。

サンプルコード 4: 複数のフィールドを追加する

add_filter('wp_save_revisioned_meta_fields', function($meta_fields, $post) {
    $meta_fields = array_merge($meta_fields, ['field_one', 'field_two']);
    return $meta_fields;
});

このコードは、field_onefield_two をリビジョンに追加します。

サンプルコード 5: 特定の投稿タイプでのみフィルタを適用する

add_filter('wp_save_revisioned_meta_fields', function($meta_fields, $post) {
    if ($post->post_type === 'custom_post_type') {
        $meta_fields[] = 'specific_field';
    }
    return $meta_fields;
});

このコードは、特定の投稿タイプ custom_post_type に対してのみ specific_field をリビジョンに追加します。

これらのサンプルは、開発者が wp_save_revisioned_meta_fields フィルタを活用して、WordPress のリビジョン管理をカスタマイズする手助けとなるでしょう。

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


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