wp_set_post_tags( int $post_id, string|array $tags = '', bool $append = false )

Set the tags for a post.


See also



(int) (Optional) The Post ID. Does not default to the ID of the global $post.


(string|array) (Optional) An array of tags to set for the post, or a string of tags separated by commas.

Default value: ''


(bool) (Optional) If true, don't delete existing tags, just add on. If false, replace the tags with the new tags.

Default value: false


(array|false|WP_Error) Array of term taxonomy IDs of affected terms. WP_Error or false on failure.

More Information

If you set IDs of an existing tag in the array, WordPress assigns the existing tag.

If you pass text in the array, WP will create a tag if it doesn’t exist and assigns it to the post

You can mix text and IDs. The text will create a term, if it not exists, the ID will be used for an existing tag – both get assigned to the post.


File: wp-includes/post.php

function wp_set_post_tags( $post_id = 0, $tags = '', $append = false ) {
	return wp_set_post_terms( $post_id, $tags, 'post_tag', $append );


Version Description
2.3.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.