Sample code for 30+ languages & platforms
Delphi DLL

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 Delphi DLL Downloads

Delphi DLL
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
success: Boolean;
http: HCkHttp;
json: HCkJsonObject;
resp: HCkHttpResponse;
jResp: HCkJsonObject;

begin
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) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

jResp := CkJsonObject_Create();
CkJsonObject_Load(jResp,CkHttpResponse__bodyStr(resp));

// Check if the tag already exists..
if (CkHttpResponse_getStatusCode(resp) = 400) then
  begin
    if (CkJsonObject_HasMember(jResp,'code') = True) then
      begin
        if (CkJsonObject_StringOfEquals(jResp,'code','term_exists',True) = True) then
          begin
            // The tag already exists.
            Memo1.Lines.Add('The tag already exists.');
            Memo1.Lines.Add('Tag ID: ' + IntToStr(CkJsonObject_IntOf(jResp,'data.term_id')));
            Exit;
          end;
      end;

    // Fall through to check for errors.
  end;

// Check for errors.
if (CkHttpResponse_getStatusCode(resp) <> 201) then
  begin
    Memo1.Lines.Add(CkHttpResponse__bodyStr(resp));
    Memo1.Lines.Add('status code = ' + IntToStr(CkHttpResponse_getStatusCode(resp)));
    Exit;
  end;

// We get here if the tag was created..
Memo1.Lines.Add('The tag was created.');
Memo1.Lines.Add('Tag ID = ' + IntToStr(CkJsonObject_IntOf(jResp,'id')));

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

end;