The register_post_meta() WordPress PHP function registers a meta key for posts.
Usage
register_post_meta( $post_type, $meta_key, $args )
Example:
register_post_meta( 'my_custom_post_type', 'custom_meta_key', array( 'type' => 'string', 'single' => true, 'show_in_rest' => true, ));
Parameters
$post_type
(string) – 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) – The meta key to register.$args
(array) – Data used to describe the meta key when registered. Seeregister_meta()
for a list of supported arguments.
More information
See WordPress Developer Resources: register_post_meta()
Examples
Registering a simple text meta key for a custom post type
This code registers a single text meta key for the custom post type ‘book’.
add_action( 'init', 'register_book_meta' ); function register_book_meta() { register_post_meta( 'book', 'author_name', array( 'type' => 'string', 'single' => true, 'show_in_rest' => true, )); }
Registering a meta key for all post types
This code registers a ‘rating’ meta key for all post types.
add_action( 'init', 'register_rating_meta' ); function register_rating_meta() { register_post_meta( '', 'rating', array( 'type' => 'integer', 'single' => true, 'show_in_rest' => true, )); }
Registering a meta key with a default value
This code registers a meta key with a default value of ‘0’.
add_action( 'init', 'register_views_meta' ); function register_views_meta() { register_post_meta( 'post', 'views', array( 'type' => 'integer', 'single' => true, 'default' => 0, 'show_in_rest' => true, )); }
Registering a meta key with custom sanitization and authorization callbacks
This code registers a meta key with custom sanitization and authorization callbacks.
add_action( 'init', 'register_custom_meta' ); function register_custom_meta() { register_post_meta( 'post', 'custom_data', array( 'type' => 'string', 'single' => true, 'sanitize_callback' => 'sanitize_text_field', 'auth_callback' => 'my_auth_callback', 'show_in_rest' => true, )); } function my_auth_callback( $allowed, $meta_key, $post_id, $user_id, $cap, $caps ) { return current_user_can( 'edit_post', $post_id ); }
Registering a meta key with an array type
This code registers a meta key with an array type for storing multiple values.
add_action( 'init', 'register_multivalue_meta' ); function register_multivalue_meta() { register_post_meta( 'post', 'tags', array( 'type' => 'array', 'single' => false, 'show_in_rest' => true, )); }