Skip to main content
Glama
posts.ts1.99 kB
/** * Posts Operations Module * Handles all post-related WordPress REST API operations */ import type { WordPressPost, PostQueryParams, CreatePostRequest, UpdatePostRequest } from "@/types/wordpress.js"; /** * Interface for the base client methods needed by posts operations */ export interface PostsClientBase { get<T>(endpoint: string): Promise<T>; post<T>(endpoint: string, data?: unknown): Promise<T>; put<T>(endpoint: string, data?: unknown): Promise<T>; delete<T>(endpoint: string): Promise<T>; } /** * Posts operations mixin * Provides CRUD operations for WordPress posts */ export class PostsOperations { constructor(private client: PostsClientBase) {} /** * Get a list of posts with optional filtering */ async getPosts(params?: PostQueryParams): Promise<WordPressPost[]> { const queryString = params ? "?" + new URLSearchParams(params as Record<string, string>).toString() : ""; return this.client.get<WordPressPost[]>(`posts${queryString}`); } /** * Get a single post by ID */ async getPost(id: number, context: "view" | "embed" | "edit" = "view"): Promise<WordPressPost> { return this.client.get<WordPressPost>(`posts/${id}?context=${context}`); } /** * Create a new post */ async createPost(data: CreatePostRequest): Promise<WordPressPost> { return this.client.post<WordPressPost>("posts", data); } /** * Update an existing post */ async updatePost(data: UpdatePostRequest): Promise<WordPressPost> { const { id, ...updateData } = data; return this.client.put<WordPressPost>(`posts/${id}`, updateData); } /** * Delete a post */ async deletePost(id: number, force = false): Promise<{ deleted: boolean; previous?: WordPressPost }> { return this.client.delete(`posts/${id}?force=${force}`); } /** * Get post revisions */ async getPostRevisions(id: number): Promise<WordPressPost[]> { return this.client.get<WordPressPost[]>(`posts/${id}/revisions`); } }

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/docdyhr/mcp-wordpress'

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