Perl
Perl
WordPress Create Post
See more WordPress Examples
Demonstrates how to create a WordPress post.Chilkat Perl Downloads
use chilkat();
$success = 0;
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = chilkat::CkHttp->new();
# Use your WordPress login, such as "admin", not the application name.
$http->put_Login("wp_username");
# Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq"
# See WordPress Application Passwords Plugin
$http->put_Password("app_password");
$http->put_BasicAuth(1);
# 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$ -
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php
# </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$ -
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php
# </IfModule>
# # END WordPress
$json = chilkat::CkJsonObject->new();
$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.
$tagIdx = 0;
$json->put_I($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->put_I($tagIdx);
$json->UpdateInt("tags[i]",75);
# ..
$resp = chilkat::CkHttpResponse->new();
$success = $http->HttpJson("POST","https://cknotes.com/wp-json/wp/v2/posts",$json,"application/json",$resp);
if ($success == 0) {
print $http->lastErrorText() . "\r\n";
exit;
}
if ($resp->get_StatusCode() != 201) {
print $resp->bodyStr() . "\r\n";
print "status code = " . $resp->get_StatusCode() . "\r\n";
exit;
}
$jResp = chilkat::CkJsonObject->new();
$jResp->Load($resp->bodyStr());
print "Post ID = " . $jResp->IntOf("id") . "\r\n";
print "Post URL = " . $jResp->stringOf("link") . "\r\n";