Create a new page with wp_insert_post ()

I have the following code in a PHP function that is activated when I install my plugin that lets you create a post or page.

Works perfect and make the page if the $post_type is “post”, but if the $post_type is “page”, then it does not work, does not create the page.:

Read More
$my_post = array(
  'post_title'    => 'My page Reql',
  'post_type'     => 'page',
  'post_name'     => 'my-page',
  'post_content'  => 'This is my page reql.',
  'post_status'   => 'publish',
  'comment_status' => 'closed',
  'ping_status' => 'closed',
  'post_author' => 1,
  'menu_order' => 0
);

wp_insert_post( $my_post );

What is the problem? I can not find the solution.

Thank you very much!

Related posts

Leave a Reply

1 comment

  1. I think you have to set the guid too, like this

    $PageGuid = site_url() . "/my-page-req1";
    $my_post  = array( 'post_title'     => 'My page Reql',
                       'post_type'      => 'page',
                       'post_name'      => 'my-page',
                       'post_content'   => 'This is my page reql.',
                       'post_status'    => 'publish',
                       'comment_status' => 'closed',
                       'ping_status'    => 'closed',
                       'post_author'    => 1,
                       'menu_order'     => 0,
                       'guid'           => $PageGuid );
    
    $PageID = wp_insert_post( $my_post, FALSE ); // Get Post ID - FALSE to return 0 instead of wp_error.