I've created a custom meta box to handle certain custom post meta fields and I don't want the clutter of having these custom fields duplicated down in the "Custom Fields" area.
How can I remove specific custom post meta from the "Custom Fields" fieldset?
I've created a custom meta box to handle certain custom post meta fields and I don't want the clutter of having these custom fields duplicated down in the "Custom Fields" area.
How can I remove specific custom post meta from the "Custom Fields" fieldset?
Share Improve this question asked Sep 15, 2010 at 16:18 Scott BScott B 5,69614 gold badges94 silver badges148 bronze badges 1- Can anyone provide a suggestion on how to use the is_protected_meta hook to hide multiple custom field keys based on a substring that’s in the key name? There’a plugin that I’m using that added a whole bunch of custom field keys and I want to hide them from the admin interface without breaking the plugin. For example, I want to hide ALL custom field keys that start with “review-” or “bsf-” – technabob Commented Jul 26, 2020 at 21:09
2 Answers
Reset to default 2To hide a custom field from the "Custom Fields" section, prefix it with an underscore. So add_post_meta($id, 'name', 'value');
becomes add_post_meta($id, '_name', 'value');
.
Here's a good reference for backup:
- How to Hide Your Plugin's Custom Fields
You can hook into the is_protected_meta filter and return true for any custom field you want to hide.
add_filter('is_protected_meta', 'my_is_protected_meta_filter', 10, 2);
function my_is_protected_meta_filter($protected, $meta_key) {
return $meta_key == 'meta-name' ? true : $protected;
}