Skip to main content
Glama

delete-category

Remove a WordPress category by specifying its ID and site credentials. Ensures complete deletion without trashing, simplifying category management through programmatic API integration.

Instructions

Delete a WordPress category

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryIdYesID of the category to delete
forceNoRequired to be true, as terms do not support trashing
passwordYesWordPress application password
siteUrlYesWordPress site URL
usernameYesWordPress username

Implementation Reference

  • The handler function for the 'delete-category' tool. It makes a DELETE request to the WordPress REST API endpoint `/wp-json/wp/v2/categories/${categoryId}` using the shared `makeWPRequest` helper, with `force` parameter. Returns success or error message in MCP content format.
    try { await makeWPRequest<any>({ siteUrl, endpoint: `categories/${categoryId}`, method: "DELETE", auth: { username, password }, params: { force } }); return { content: [ { type: "text", text: `Successfully deleted category ${categoryId}.`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error deleting category: ${error instanceof Error ? error.message : String(error)}`, }, ], }; } }
  • Zod schema defining input parameters for the 'delete-category' tool: siteUrl (required URL), username, password (credentials), categoryId (number, required), force (boolean, defaults to true).
    siteUrl: z.string().url().describe("WordPress site URL"), username: z.string().describe("WordPress username"), password: z.string().describe("WordPress application password"), categoryId: z.number().describe("ID of the category to delete"), force: z.boolean().optional().default(true).describe("Required to be true, as terms do not support trashing"), }, async ({ siteUrl, username, password, categoryId, force }) => {
  • src/index.ts:2061-2099 (registration)
    Registration of the 'delete-category' tool via `server.tool(name, description, inputSchema, handlerFunction)`. Located in the CATEGORY TOOLS section.
    "delete-category", "Delete a WordPress category", { siteUrl: z.string().url().describe("WordPress site URL"), username: z.string().describe("WordPress username"), password: z.string().describe("WordPress application password"), categoryId: z.number().describe("ID of the category to delete"), force: z.boolean().optional().default(true).describe("Required to be true, as terms do not support trashing"), }, async ({ siteUrl, username, password, categoryId, force }) => { try { await makeWPRequest<any>({ siteUrl, endpoint: `categories/${categoryId}`, method: "DELETE", auth: { username, password }, params: { force } }); return { content: [ { type: "text", text: `Successfully deleted category ${categoryId}.`, }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error deleting category: ${error instanceof Error ? error.message : String(error)}`, }, ], }; } } );
  • Shared helper function `makeWPRequest` used by all WP API tools, including delete-category, to perform authenticated HTTP requests to WP REST API.
    async function makeWPRequest<T>({ siteUrl, endpoint, method = 'GET', auth, data = null, params = null }: { siteUrl: string; endpoint: string; method?: 'GET' | 'POST' | 'PUT' | 'DELETE'; auth: { username: string; password: string }; data?: any; params?: any; }): Promise<T> { const authString = Buffer.from(`${auth.username}:${auth.password}`).toString('base64'); try { const response = await axios({ method, url: `${siteUrl}/wp-json/wp/v2/${endpoint}`, headers: { 'Authorization': `Basic ${authString}`, 'Content-Type': 'application/json', }, data: data, params: params }); return response.data as T; } catch (error) { if (axios.isAxiosError(error) && error.response) { throw new Error(`WordPress API error: ${error.response.data?.message || error.message}`); } throw error; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prathammanocha/wordpress-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server