add_post_meta( int $post_id, string $meta_key, mixed $meta_value, bool $unique = false )
Adds a meta field to the given post.
Description
Post meta data is called "Custom Fields" on the Administration Screen.
Parameters
- $post_id
-
(int) (Required) Post ID.
- $meta_key
-
(string) (Required) Metadata name.
- $meta_value
-
(mixed) (Required) Metadata value. Must be serializable if non-scalar.
- $unique
-
(bool) (Optional) Whether the same key should not be added.
Default value: false
Return
(int|false) Meta ID on success, false on failure.
More Information
Note that if the given key already exists among custom fields of the specified post, another custom field with the same key is added unless the $unique argument is set to true, in which case, no changes are made. If you want to update the value of an existing key, use the update_post_meta() function instead
Character Escaping
Because meta values are passed through the stripslashes() function, you need to be careful about content escaped with \ characters. You can read more about the behavior, and a workaround example, in the update_post_meta() documentation.
Source
File: wp-includes/post.php
function add_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) { // Make sure meta is added to the post, not a revision. $the_post = wp_is_post_revision( $post_id ); if ( $the_post ) { $post_id = $the_post; } return add_metadata( 'post', $post_id, $meta_key, $meta_value, $unique ); }
Changelog
Version | Description |
---|---|
1.5.0 | Introduced. |
© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/add_post_meta