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
- $post_id
-
(int) (Optional) Post ID to change post type. Default 0.
- $post_type
-
(string) (Optional) Post type. Accepts 'post' or 'page' to name a few.
Default value: 'post'
Return Return
(int|false) Amount of rows changed. Should be 1 for success and 0 for failure.
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;
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 2.5.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Example
$post_id = 15; if ( set_post_type( $post_id, 'page' ) ) { printf( __( 'Post #%d is now a Page', 'textdomain' ), $post_id ); } else { echo __( 'Impossible to transform this post into a page.', 'textdomain' ); }