Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) WordPress Create PostSee more WordPress ExamplesDemonstrates how to create a WordPress post. For more information, see https://wordpress.org/plugins/application-passwords/
#include <C_CkHttpW.h> #include <C_CkJsonObjectW.h> #include <C_CkHttpResponseW.h> void ChilkatSample(void) { HCkHttpW http; BOOL success; HCkJsonObjectW json; int tagIdx; HCkHttpResponseW resp; HCkJsonObjectW jResp; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttpW_Create(); // Use your WordPress login, such as "admin", not the application name. CkHttpW_putLogin(http,L"wp_username"); // Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq" // See WordPress Application Passwords Plugin CkHttpW_putPassword(http,L"app_password"); CkHttpW_putBasicAuth(http,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$ - // 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 = CkJsonObjectW_Create(); CkJsonObjectW_UpdateString(json,L"title",L"This is a test post"); CkJsonObjectW_UpdateString(json,L"content",L"<p>This is the HTML body of my post</p>"); // The status can be "draft" or "publish" CkJsonObjectW_UpdateString(json,L"status",L"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; CkJsonObjectW_putI(json,tagIdx); // When Chilkat sees the literal string "[i]" in the JSON path, it replaces the "i" with the value of the "I" property. CkJsonObjectW_UpdateInt(json,L"tags[i]",56); tagIdx = tagIdx + 1; CkJsonObjectW_putI(json,tagIdx); CkJsonObjectW_UpdateInt(json,L"tags[i]",75); // .. resp = CkHttpW_PostJson3(http,L"https://cknotes.com/wp-json/wp/v2/posts",L"application/json",json); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); return; } if (CkHttpResponseW_getStatusCode(resp) != 201) { wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp)); wprintf(L"status code = %d\n",CkHttpResponseW_getStatusCode(resp)); CkHttpResponseW_Dispose(resp); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); return; } jResp = CkJsonObjectW_Create(); CkJsonObjectW_Load(jResp,CkHttpResponseW_bodyStr(resp)); wprintf(L"Post ID = %d\n",CkJsonObjectW_IntOf(jResp,L"id")); wprintf(L"Post URL = %s\n",CkJsonObjectW_stringOf(jResp,L"link")); CkHttpResponseW_Dispose(resp); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); CkJsonObjectW_Dispose(jResp); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.