Sample code for 30+ languages & platforms
Java

WordPress Create Post

See more WordPress Examples

Demonstrates how to create a WordPress post.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        // Use your WordPress login, such as "admin", not the application name.
        http.setLogin("wp_username");
        // Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq"
        // See WordPress Application Passwords Plugin
        http.setPassword("app_password");
        http.setBasicAuth(true);

        // Note: For this to work, you'll likely need to update your .htaccess file on your WordPress server.
        // Otherwise you'll get this error:
        //
        // 401 : Sorry, you are not allowed to create posts as this user
        //
        // Your default .htaccess file probably looks like this:
        //
        // <IfModule mod_rewrite.c>
        // RewriteEngine On
        // RewriteBase /
        // RewriteRule ^index\.php$ - [L]
        // RewriteCond %{REQUEST_FILENAME} !-f
        // RewriteCond %{REQUEST_FILENAME} !-d
        // RewriteRule . /index.php [L]
        // </IfModule>
        // # END WordPress
        //
        // Add the following line immediately after the "RewriteEngine On" line:    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
        // Your .htaccess file should look like this after the edit:
        //
        // <IfModule mod_rewrite.c>
        // RewriteEngine On
        // RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
        // RewriteBase /
        // RewriteRule ^index\.php$ - [L]
        // RewriteCond %{REQUEST_FILENAME} !-f
        // RewriteCond %{REQUEST_FILENAME} !-d
        // RewriteRule . /index.php [L]
        // </IfModule>
        // # END WordPress

        JsonObject json = new JsonObject();
        json.updateString("title", "This is a test post");
        json.updateString("content", "<p>This is the HTML body of my post</p>");
        // The status can be "draft" or "publish"
        json.updateString("status", "draft");

        // Add tags -- but you need to know the ID of an existing tag.
        // See Chilkat's other WordPress example for creating a tag, or getting the ID of an existing tag.
        int tagIdx = 0;
        json.setI(tagIdx);
        // When Chilkat sees the literal string "[i]" in the JSON path, it replaces the "i" with the value of the "I" property.
        json.updateInt("tags[i]", 56);
        tagIdx = tagIdx + 1;
        json.setI(tagIdx);
        json.updateInt("tags[i]", 75);
        // ..

        HttpResponse resp = new HttpResponse();
        try {
            http.httpJson("POST", "https://cknotes.com/wp-json/wp/v2/posts", json, "application/json", resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        if (resp.getStatusCode() != 201) {
            System.out.println(resp.getBodyStr());
            System.out.println("status code = " + resp.getStatusCode());
            return;
        }

        JsonObject jResp = new JsonObject();
        jResp.load(resp.getBodyStr());
        System.out.println("Post ID = " + jResp.intOf("id"));
        System.out.println("Post URL = " + jResp.stringOf("link"));
    }
}