WordPress Version: 5.9
/**
* Returns default post information to use when populating the "Write Post" form.
*
* @since 2.0.0
*
* @param string $post_type Optional. A post type string. Default 'post'.
* @param bool $create_in_db Optional. Whether to insert the post into database. Default false.
* @return WP_Post Post object containing all the default post data as attributes
*/
function get_default_post_to_edit($post_type = 'post', $create_in_db = false)
{
$post_title = '';
if (!empty($_REQUEST['post_title'])) {
$post_title = esc_html(wp_unslash($_REQUEST['post_title']));
}
$post_content = '';
if (!empty($_REQUEST['content'])) {
$post_content = esc_html(wp_unslash($_REQUEST['content']));
}
$post_excerpt = '';
if (!empty($_REQUEST['excerpt'])) {
$post_excerpt = esc_html(wp_unslash($_REQUEST['excerpt']));
}
if ($create_in_db) {
$post_id = wp_insert_post(array('post_title' => __('Auto Draft'), 'post_type' => $post_type, 'post_status' => 'auto-draft'), false, false);
$post = get_post($post_id);
if (current_theme_supports('post-formats') && post_type_supports($post->post_type, 'post-formats') && get_option('default_post_format')) {
set_post_format($post, get_option('default_post_format'));
}
wp_after_insert_post($post, false, null);
// Schedule auto-draft cleanup.
if (!wp_next_scheduled('wp_scheduled_auto_draft_delete')) {
wp_schedule_event(time(), 'daily', 'wp_scheduled_auto_draft_delete');
}
} else {
$post = new stdClass();
$post->ID = 0;
$post->post_author = '';
$post->post_date = '';
$post->post_date_gmt = '';
$post->post_password = '';
$post->post_name = '';
$post->post_type = $post_type;
$post->post_status = 'draft';
$post->to_ping = '';
$post->pinged = '';
$post->comment_status = get_default_comment_status($post_type);
$post->ping_status = get_default_comment_status($post_type, 'pingback');
$post->post_pingback = get_option('default_pingback_flag');
$post->post_category = get_option('default_category');
$post->page_template = 'default';
$post->post_parent = 0;
$post->menu_order = 0;
$post = new WP_Post($post);
}
/**
* Filters the default post content initially used in the "Write Post" form.
*
* @since 1.5.0
*
* @param string $post_content Default post content.
* @param WP_Post $post Post object.
*/
$post->post_content = (string) apply_filters('default_content', $post_content, $post);
/**
* Filters the default post title initially used in the "Write Post" form.
*
* @since 1.5.0
*
* @param string $post_title Default post title.
* @param WP_Post $post Post object.
*/
$post->post_title = (string) apply_filters('default_title', $post_title, $post);
/**
* Filters the default post excerpt initially used in the "Write Post" form.
*
* @since 1.5.0
*
* @param string $post_excerpt Default post excerpt.
* @param WP_Post $post Post object.
*/
$post->post_excerpt = (string) apply_filters('default_excerpt', $post_excerpt, $post);
return $post;
}