set_post_type( int $post_id, string $post_type = 'post' )

Update the post type for the post ID.

Description Description

The page or post cache will be cleaned for the post ID.

Parameters Parameters


(int) (Optional) Post ID to change post type. Default 0.


(string) (Optional) Post type. Accepts 'post' or 'page' to name a few.

Default value: 'post'

Top ↑

Return Return

(int|false) Amount of rows changed. Should be 1 for success and 0 for failure.

Top ↑

Source Source

File: wp-includes/post.php

function set_post_type( $post_id = 0, $post_type = 'post' ) {
	global $wpdb;

	$post_type = sanitize_post_field( 'post_type', $post_type, $post_id, 'db' );
	$return    = $wpdb->update( $wpdb->posts, array( 'post_type' => $post_type ), array( 'ID' => $post_id ) );

	clean_post_cache( $post_id );

	return $return;

Top ↑

Changelog Changelog

Version Description
2.5.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.