wordpress / latest / functions / add_post_meta.html

add_post_meta( int $post_id, string $meta_key, mixed $meta_value, bool $unique = false ): int|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: 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. View all references

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 );
}

Uses

Uses Description

Used By

Used By Description

Changelog

Version Description
1.5.0 Introduced.

© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/add_post_meta