register_post_meta()
Registers a meta key for posts (post custom field).
It is a wrapper for the register_meta function for easy registration of post meta-fields.
To do the same for taxonomy, see register_term_meta().
The registered meta fields are stored in the global $wp_meta_keys array.
Uses: register_meta()
1 time — 0.000126 sec (fast) | 50000 times — 0.27 sec (very fast) | PHP 7.1.11, WP 4.9.8
No Hooks.
Return
true|false
. True if the meta key was successfully registered, false if not.
Usage
register_post_meta( $post_type, $meta_key, $args );
- $post_type(string) (required)
- Post type to register a meta key for. Pass an empty string to register the meta key across all existing post types.
- $meta_key(string) (required)
- The meta key to register.
- $args(array) (required)
- Data used to describe the meta key when registered. See register_meta() for a list of supported arguments.
#1 Register a meta-field for pages only
register_post_meta( 'page', 'my_meta_key', array( // Add to REST response 'show_in_rest' => true, // Process the value of the field when saving it to the database, function absint() 'sanitize_callback' => 'absint', ) );
Now the meta-field with the key my_meta_key
will be registered for pages only.
The same can be done with register_meta(), like this:
register_meta( 'post', 'my_meta_key', array( 'object_subtype' => 'page', // post type 'show_in_rest' => true, 'sanitize_callback' => 'absint', ) );
#2 More examples
See the register_meta() function for more examples and usage features.
Changelog
Since 4.9.8 | Introduced. |
Code of register_post_meta() register post meta WP 6.0.1
function register_post_meta( $post_type, $meta_key, array $args ) { $args['object_subtype'] = $post_type; return register_meta( 'post', $meta_key, $args ); }