Sample code for 30+ languages & platforms
C

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 C Downloads

C
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>
#include <C_CkHttpResponse.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttp http;
    HCkJsonObject json;
    HCkHttpResponse resp;
    HCkJsonObject jResp;

    success = FALSE;

    // 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);

    // Create the tag "ChatGPT" if it does not already exist.
    json = CkJsonObject_Create();
    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.
    resp = CkHttpResponse_Create();
    success = CkHttp_HttpJson(http,"POST","https://cknotes.com/wp-json/wp/v2/tags",json,"application/json",resp);
    if (success == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        CkJsonObject_Dispose(json);
        CkHttpResponse_Dispose(resp);
        return;
    }

    jResp = CkJsonObject_Create();
    CkJsonObject_Load(jResp,CkHttpResponse_bodyStr(resp));

    // Check if the tag already exists..
    if (CkHttpResponse_getStatusCode(resp) == 400) {
        if (CkJsonObject_HasMember(jResp,"code") == TRUE) {
            if (CkJsonObject_StringOfEquals(jResp,"code","term_exists",TRUE) == TRUE) {
                // The tag already exists.
                printf("The tag already exists.\n");
                printf("Tag ID: %d\n",CkJsonObject_IntOf(jResp,"data.term_id"));
                CkHttp_Dispose(http);
                CkJsonObject_Dispose(json);
                CkHttpResponse_Dispose(resp);
                CkJsonObject_Dispose(jResp);
                return;
            }

        }

        // Fall through to check for errors.
    }

    // Check for errors.
    if (CkHttpResponse_getStatusCode(resp) != 201) {
        printf("%s\n",CkHttpResponse_bodyStr(resp));
        printf("status code = %d\n",CkHttpResponse_getStatusCode(resp));
        CkHttp_Dispose(http);
        CkJsonObject_Dispose(json);
        CkHttpResponse_Dispose(resp);
        CkJsonObject_Dispose(jResp);
        return;
    }

    // We get here if the tag was created..
    printf("The tag was created.\n");
    printf("Tag ID = %d\n",CkJsonObject_IntOf(jResp,"id"));


    CkHttp_Dispose(http);
    CkJsonObject_Dispose(json);
    CkHttpResponse_Dispose(resp);
    CkJsonObject_Dispose(jResp);

    }