概要
wp_save_revisioned_meta_fields
フィルタは、WordPress 内のポストリビジョンと呼ばれる機能に関連するもので、リビジョンとともに保存されるメタフィールドを制御する際によく使われます。このフィルタを使用することで、特定のメタフィールドをリビジョンに含めたり、除外したりすることができます。
よく使われる機能
- カスタムフィールドの管理
- 特定のメタデータのリビジョンにおける履歴の保持
- 不要なメタデータのリビジョンからの除外
- 異なる投稿タイプに応じたメタデータの調整
- セキュリティ対策としてのメタフィールドの制限
- リビジョンのエクスポート機能の拡張
- マルチサイト環境での特定の設定の適用
- デバッグやトラブルシューティングでのメタデータ管理
このフィルタは、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_field
を new_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_one
と field_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 のリビジョン管理をカスタマイズする手助けとなるでしょう。