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
(Delphi DLL) WordPress Create PostSee more WordPress ExamplesDemonstrates how to create a WordPress post. For more information, see https://wordpress.org/plugins/application-passwords/
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpResponse, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; success: Boolean; json: HCkJsonObject; tagIdx: Integer; resp: HCkHttpResponse; jResp: HCkJsonObject; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_Create(); // Use your WordPress login, such as "admin", not the application name. CkHttp_putLogin(http,'wp_username'); // Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq" // See WordPress Application Passwords Plugin CkHttp_putPassword(http,'app_password'); CkHttp_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 := CkJsonObject_Create(); CkJsonObject_UpdateString(json,'title','This is a test post'); CkJsonObject_UpdateString(json,'content','<p>This is the HTML body of my post</p>'); // The status can be "draft" or "publish" CkJsonObject_UpdateString(json,'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; CkJsonObject_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. CkJsonObject_UpdateInt(json,'tags[i]',56); tagIdx := tagIdx + 1; CkJsonObject_putI(json,tagIdx); CkJsonObject_UpdateInt(json,'tags[i]',75); // .. resp := CkHttp_PostJson3(http,'https://cknotes.com/wp-json/wp/v2/posts','application/json',json); if (CkHttp_getLastMethodSuccess(http) = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; if (CkHttpResponse_getStatusCode(resp) <> 201) then begin Memo1.Lines.Add(CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add('status code = ' + IntToStr(CkHttpResponse_getStatusCode(resp))); CkHttpResponse_Dispose(resp); Exit; end; jResp := CkJsonObject_Create(); CkJsonObject_Load(jResp,CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add('Post ID = ' + IntToStr(CkJsonObject_IntOf(jResp,'id'))); Memo1.Lines.Add('Post URL = ' + CkJsonObject__stringOf(jResp,'link')); CkHttpResponse_Dispose(resp); CkHttp_Dispose(http); CkJsonObject_Dispose(json); CkJsonObject_Dispose(jResp); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.