Create, Update Or Delete WordPress Posts / Custom Post Type Using REST API

Create, Update or Delete WordPress posts / Custom Post type using REST API

There is three-stage of first we need to create a post with a simple one filed Title, Then we need to update the post and delete the post. The same process will work for Post type and Custom post type. 

Create a Post type with REST API

Where to insert all the code from this post? I hope you know this but just in case.

You need a postman and Website through Postman we are going to insert value in post type.

  •  The first website – is the website where the post should be created.
  •   The second Postman – is the website that will interact with the first website.

We are going to use wp_remote_post() it is a WordPress function it should be inserted somewhere in the WordPress environment. 

$api_response = wp_remote_post( 'https://domainname/wp-json/wp/v2/posts', array(
     'headers' => array(
        'Authorization' => 'Basic ' . base64_encode( 'LOGIN:PASSWORD' )
    ),
    'body' => array(
            'title'   => 'My test',
        'status'  => 'draft', // ok, we do not want to publish it immediately
        'content' => 'lalala',
        'categories' => 5, // category ID
        'tags' => '1,4,23' // string, comma separated
        'date' => '2015-05-05T10:00:00', // YYYY-MM-DDTHH:MM:SS
        'excerpt' => 'Read this awesome post',
        'password' => '12$45',
        'slug' => 'new-test-post' // part of the URL usually
        // more body params are here:
        // developer.wordpress.org/rest-api/reference/posts/#create-a-post
    )
) );
 
$body = json_decode( $api_response['body'] );
 
// you can always print_r to look what is inside
// print_r( $body ); // or print_r( $api_response );
 
if( wp_remote_retrieve_response_message( $api_response ) === 'Created' ) {
    echo 'The post ' . $body->title->rendered . ' has been created successfully';
}

Update a Post type with REST API

We are going update the title of the created post. Replace {POST_ID} with the ID of the post you would like to update. check the below sample

$api_response = wp_remote_post( 'https://domainname/wp-json/wp/v2/posts/{POST_ID}/', array(
     'headers' => array(
        'Authorization' => 'Basic ' . base64_encode( 'LOGIN:PASSWORD' )
    ),
    'body' => array(
            'title' => 'My test 1'
    )
) );
 
$body = json_decode( $api_response['body'] );
 
 
if( wp_remote_retrieve_response_message( $api_response ) === 'OK' ) {
    echo 'The post ' . $body->title->rendered . ' has been updated successfully';
}

 

Delete a Post type with REST API

If you add ?force=true at the end of the request URI, the post will be removed permanently without moving to trash.

$api_response = wp_remote_request( 'https://domainname/wp-json/wp/v2/posts/{POST_ID}', array(  // ?force=true to skip trash
    'method'    => 'DELETE',
    'headers'   => array(
        'Authorization' => 'Basic ' . base64_encode( 'LOGIN:PASSWORD' )
    )
));
 
$body = json_decode( $api_response['body'] );
 
 
if( wp_remote_retrieve_response_message( $api_response ) === 'OK' ) {
    if( $body->deleted == true ) {
        echo 'The post ' . $body->previous->title->rendered . ' has been completely deleted';
    } else {
        echo 'The post ' . $body->title->rendered . ' has been moved to trash';
    }
}

If you don't required Loing just remove Loing functionality from the function and customize based on your requirement. 

Related Posts
Website Design Ideas for Business

In this article, we are going to discuss web design ideas for business. Before planing to develop th

Job Portal Development Services

After search engines, job portals are almost certainly the most highly visited sites in the internet

Tips To Creating A Top-Notch Health Care Website Design

Given the increment in entrance of computerized administrations, all the more thus, when the assault

Memorial Web Design Ideas & Inspiration

Greycoders is a web design and Development Company We create a website for memorable ones. Missing a

Get free quote for

Create

Update or Delete WordPress posts / Custom Post type using REST API

Contact us