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

Set the tags for a post.

Description

See also

Parameters

$post_id

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

$tags

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

Default value: ''

$append

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

Default value: false

Return

(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.

Source

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

Changelog

Version Description
2.3.0 Introduced.

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