Sample code for 30+ languages & platforms
Tcl

WordPress Create Tag

See more WordPress Examples

Demonstrates how to create a new tag in Wordpress, or to find the ID of an existing tag.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# 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

# Create the tag "ChatGPT" if it does not already exist.
set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "name" "ChatGPT"

# This will create the tag if it does not yet exist.
# If the tag already exists, then a 400 status code is returned.
# If the tag deoes not yet exist, then a 201 status code is returned.
set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" "https://cknotes.com/wp-json/wp/v2/tags" $json "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

set jResp [new_CkJsonObject]

CkJsonObject_Load $jResp [CkHttpResponse_bodyStr $resp]

# Check if the tag already exists..
if {[CkHttpResponse_get_StatusCode $resp] == 400} then {
    if {[CkJsonObject_HasMember $jResp "code"] == 1} then {
        if {[CkJsonObject_StringOfEquals $jResp "code" "term_exists" 1] == 1} then {
            # The tag already exists.
            puts "The tag already exists."
            puts "Tag ID: [CkJsonObject_IntOf $jResp data.term_id]"
            delete_CkHttp $http
            delete_CkJsonObject $json
            delete_CkHttpResponse $resp
            delete_CkJsonObject $jResp
            exit
        }

    }

    # Fall through to check for errors.
}

# Check for errors.
if {[CkHttpResponse_get_StatusCode $resp] != 201} then {
    puts [CkHttpResponse_bodyStr $resp]
    puts "status code = [CkHttpResponse_get_StatusCode $resp]"
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    delete_CkJsonObject $jResp
    exit
}

# We get here if the tag was created..
puts "The tag was created."
puts "Tag ID = [CkJsonObject_IntOf $jResp id]"

delete_CkHttp $http
delete_CkJsonObject $json
delete_CkHttpResponse $resp
delete_CkJsonObject $jResp