Support

Account

Home Forums Front-end Issues Create new Post in Front end Reply To: Create new Post in Front end

  • @thx1138, I’m not sure if this is the best way, but here’s how I do it. Instead of setting post_id to “new”, I set it to “new_post-type”, then I use that to specify the post type in my_pre_save_post:

    function my_pre_save_post( $post_id ) {
        $type = explode( '_', $post_id, 2 );
        if ( $type[0] != 'new' ) // Check if this is a new post
            return $post_id;
    
        // Create a new post
        $post = array(
            'post_status' => 'publish',
            'post_title' => 'Untitled',
            'post_type' => $type[1]
        );
        $post_id = wp_insert_post( $post ); // Insert the post
        do_action( 'acf/save_post' , $post_id ); // Save the fields to the post
        wp_redirect( add_query_arg( 'updated', 'true', get_permalink( $post_id ) ) ); exit; // Redirect to the new post
        return $post_id;
    }
    add_filter( 'acf/pre_save_post' , 'my_pre_save_post' );