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
(Tcl) WordPress Create PostSee more WordPress ExamplesDemonstrates how to create a WordPress post. For more information, see https://wordpress.org/plugins/application-passwords/
load ./chilkat.dll # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] # Use your WordPress login, such as "admin", not the application name. CkHttp_put_Login $http "wp_username" # Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq" # See WordPress Application Passwords Plugin CkHttp_put_Password $http "app_password" CkHttp_put_BasicAuth $http 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 set json [new_CkJsonObject] 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. set tagIdx 0 CkJsonObject_put_I $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 set tagIdx [expr $tagIdx + 1] CkJsonObject_put_I $json $tagIdx CkJsonObject_UpdateInt $json "tags[i]" 75 # .. # resp is a CkHttpResponse set resp [CkHttp_PostJson3 $http "https://cknotes.com/wp-json/wp/v2/posts" "application/json" $json] if {[CkHttp_get_LastMethodSuccess $http] == 0} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $json exit } if {[CkHttpResponse_get_StatusCode $resp] != 201} then { puts [CkHttpResponse_bodyStr $resp] puts "status code = [CkHttpResponse_get_StatusCode $resp]" delete_CkHttpResponse $resp delete_CkHttp $http delete_CkJsonObject $json exit } set jResp [new_CkJsonObject] CkJsonObject_Load $jResp [CkHttpResponse_bodyStr $resp] puts "Post ID = [CkJsonObject_IntOf $jResp id]" puts "Post URL = [CkJsonObject_stringOf $jResp link]" delete_CkHttpResponse $resp delete_CkHttp $http delete_CkJsonObject $json delete_CkJsonObject $jResp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.