Wordpress: insert post-format in post using wp_insert_post() Wordpress: insert post-format in post using wp_insert_post() wordpress wordpress

Wordpress: insert post-format in post using wp_insert_post()


You need to update post format separately because Post Format is a type of taxonomy. See following example for updating post format.

$my_post = array('post_type'     => 'post', // "post" para una entrada, "page" para páginas, "libro"     para el custom post type libro...    'post_status'   => 'publish', // "draft" para borrador, "future" para programarlo...    'post_title'    => $_POST['BlogEntranceTitle'],     'post_content'  => $_POST['BlogEntranceCode'],     'post_author'   => $user_ID, //      'post_category' => $_POST['BlogEntranceCats'],      'tags_input'    => $_POST['BlogEntranceTags'],    'post_excerpt'  => $_POST['BlogEntranceExcerpt']);$new_post_id  = wp_insert_post( $my_post );$tag = 'post-format-image';$taxonomy = 'post_format';wp_set_post_terms( $new_post_id, $tag, $taxonomy );

After inserting Post, Post ID is returned. That ID is used to update the post format. In the above example, Image post format will be assigned. Please change it as per your requirement.


For completeness: there is no need to 'decouple' or have this as a separate operation, as it can be set in the same array with the remaining settings. There is an option (namely, 'tax_input') to set taxonomies directly in the array containing the post parameters.

This is what I use to achieve the same effect:

$my_post = array(   'post_type'     => 'post'                                     ,   'post_status'   => 'publish'                                  ,   'post_title'    => $_POST['BlogEntranceTitle']                ,   'post_content'  => $_POST['BlogEntranceCode']                 ,    'post_author'   => $user_ID                                   ,   'post_category' => $_POST['BlogEntranceCats']                 ,   'tags_input'    => $_POST['BlogEntranceTags']                 ,   'post_excerpt'  => $_POST['BlogEntranceExcerpt']              ,   'tax_input'     => array('post_format' => 'post-format-quote')  //  <- add this to set post_format);wp_insert_post( $my_post );