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?

  • 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 2


To 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:


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;
  • 1
    Clean up your code please. Use the {} sign above the editor to add code in a code block. Thank you Commented Jul 21, 2015 at 11:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.