Modules@robinpath/wordpress
wordpress

@robinpath/wordpress

0.1.1Node.jsPublic

WordPress module for RobinPath.

WordPress

WordPress module for RobinPath.

Package: @robinpath/wordpress | Category: Cms | Type: Integration

Authentication

wordpress.setCredentials "https://mysite.com" "admin" "xxxx xxxx xxxx xxxx"

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the wordpress module when you need to:

  • List posts with optional filters. -- Use wordpress.listPosts to perform this operation
  • Get a single post by ID. -- Use wordpress.getPost to perform this operation
  • Create a new post. -- Use wordpress.createPost to perform this operation
  • Update an existing post. -- Use wordpress.updatePost to perform this operation
  • Delete a post (trash or force-delete). -- Use wordpress.deletePost to perform this operation

Quick Reference

FunctionDescriptionReturns
setCredentialsSet WordPress site URL and Application Password credentials.Confirmation message.
listPostsList posts with optional filters.Array of post objects.
getPostGet a single post by ID.Post object.
createPostCreate a new post.Created post object.
updatePostUpdate an existing post.Updated post object.
deletePostDelete a post (trash or force-delete).Deleted/trashed post object.
listPagesList pages with optional filters.Array of page objects.
createPageCreate a new page.Created page object.
updatePageUpdate an existing page.Updated page object.
deletePageDelete a page (trash or force-delete).Deleted/trashed page object.
listCategoriesList post categories.Array of category objects.
createCategoryCreate a new category.Created category object.
deleteCategoryPermanently delete a category.Deletion confirmation.
listTagsList post tags.Array of tag objects.
createTagCreate a new tag.Created tag object.
deleteTagPermanently delete a tag.Deletion confirmation.
listCommentsList comments with optional filters.Array of comment objects.
getCommentGet a single comment by ID.Comment object.
createCommentCreate a new comment.Created comment object.
updateCommentUpdate an existing comment.Updated comment object.
deleteCommentDelete a comment (trash or force-delete).Deleted/trashed comment.
moderateCommentChange a comment's moderation status.Updated comment object.
listMediaList media library items.Array of media objects.
getMediaGet a media item by ID.Media object with source_url, dimensions, etc.
uploadMediaUpload a media file.Uploaded media object with source_url.
updateMediaUpdate media metadata (title, alt_text, caption, description).Updated media object.
deleteMediaPermanently delete a media item.Deletion confirmation.
listUsersList users on the site.Array of user objects.
getUserGet a user by ID.User object.
createUserCreate a new user.Created user object.
updateUserUpdate a user's profile.Updated user object.
deleteUserDelete a user and reassign their content.Deletion confirmation.
getMetaGet custom fields/meta for a post or page.Object containing meta fields.
updateMetaUpdate custom fields/meta on a post or page.Updated post/page object.
deleteMetaRemove a custom field/meta key from a post or page.Updated post/page object.
listRevisionsList revisions for a post or page.Array of revision objects.
getRevisionGet a specific revision.Revision object with content diff.
deleteRevisionPermanently delete a revision.Deletion confirmation.
listTaxonomiesList all registered taxonomies.Object of taxonomy definitions.
listTermsList terms for any taxonomy.Array of term objects.
createTermCreate a term in any taxonomy.Created term object.
listPluginsList all installed plugins with status.Array of plugin objects with name, status, version.
activatePluginActivate a plugin.Updated plugin object.
deactivatePluginDeactivate a plugin.Updated plugin object.
installPluginInstall a plugin from the WordPress.org marketplace.Installed plugin object with name, version, status.
deletePluginDelete (uninstall) a plugin. Plugin must be deactivated first.Deletion confirmation.
listThemesList all installed themes.Array of theme objects.
activateThemeActivate a theme.Updated theme object.
getSettingsGet site settings (title, description, timezone, etc.).Site settings object.
updateSettingsUpdate site settings.Updated settings object.
searchGlobal search across all content types.Array of search result objects with title, url, type.
bulkUpdatePostsUpdate multiple posts at once with the same changes.Array of updated post objects.
bulkDeletePostsDelete multiple posts at once.Array of deletion results.

Functions

setCredentials

Set WordPress site URL and Application Password credentials.

Module: wordpress | Returns: string -- Confirmation message.

wordpress.setCredentials "https://mysite.com" "admin" "xxxx xxxx xxxx xxxx"
ParameterTypeRequiredDescription
siteUrlstringYesWordPress site URL (e.g. https://mysite.com)
usernamestringYesWordPress username
appPasswordstringYesApplication Password (WP Admin > Users > Application Passwords)

listPosts

List posts with optional filters.

Module: wordpress | Returns: array -- Array of post objects.

wordpress.listPosts {"per_page":5,"status":"publish"}
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, status, search, categories, tags, orderby, order, author

getPost

Get a single post by ID.

Module: wordpress | Returns: object -- Post object.

wordpress.getPost "123"
ParameterTypeRequiredDescription
postIdstringYesPost ID

createPost

Create a new post.

Module: wordpress | Returns: object -- Created post object.

wordpress.createPost {"title":"My Post","content":"<p>Hello</p>","status":"draft"}
ParameterTypeRequiredDescription
postobjectYesPost object (title, content, status, categories, tags, featured_media, etc.)

updatePost

Update an existing post.

Module: wordpress | Returns: object -- Updated post object.

wordpress.updatePost "123" {"title":"Updated","status":"publish"}
ParameterTypeRequiredDescription
postIdstringYesPost ID
postobjectYesFields to update

deletePost

Delete a post (trash or force-delete).

Module: wordpress | Returns: object -- Deleted/trashed post object.

wordpress.deletePost "123"
ParameterTypeRequiredDescription
postIdstringYesPost ID
forcebooleanNoPermanently delete (default: false = trash)

listPages

List pages with optional filters.

Module: wordpress | Returns: array -- Array of page objects.

wordpress.listPages {"per_page":10}
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, status, search, parent, orderby, order

createPage

Create a new page.

Module: wordpress | Returns: object -- Created page object.

wordpress.createPage {"title":"About","content":"<p>About us</p>","status":"publish"}
ParameterTypeRequiredDescription
pageobjectYesPage object (title, content, status, parent, etc.)

updatePage

Update an existing page.

Module: wordpress | Returns: object -- Updated page object.

wordpress.updatePage "456" {"content":"<p>Updated</p>"}
ParameterTypeRequiredDescription
pageIdstringYesPage ID
pageobjectYesFields to update

deletePage

Delete a page (trash or force-delete).

Module: wordpress | Returns: object -- Deleted/trashed page object.

wordpress.deletePage "456" true
ParameterTypeRequiredDescription
pageIdstringYesPage ID
forcebooleanNoPermanently delete (default: false = trash)

listCategories

List post categories.

Module: wordpress | Returns: array -- Array of category objects.

wordpress.listCategories
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, search, parent, orderby, order

createCategory

Create a new category.

Module: wordpress | Returns: object -- Created category object.

wordpress.createCategory "Technology"
ParameterTypeRequiredDescription
namestringYesCategory name
optionsobjectNoOptions: description, parent, slug

deleteCategory

Permanently delete a category.

Module: wordpress | Returns: object -- Deletion confirmation.

wordpress.deleteCategory "12"
ParameterTypeRequiredDescription
categoryIdstringYesCategory ID

listTags

List post tags.

Module: wordpress | Returns: array -- Array of tag objects.

wordpress.listTags {"search":"javascript"}
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, search, orderby, order

createTag

Create a new tag.

Module: wordpress | Returns: object -- Created tag object.

wordpress.createTag "react"
ParameterTypeRequiredDescription
namestringYesTag name
optionsobjectNoOptions: description, slug

deleteTag

Permanently delete a tag.

Module: wordpress | Returns: object -- Deletion confirmation.

wordpress.deleteTag "34"
ParameterTypeRequiredDescription
tagIdstringYesTag ID

listComments

List comments with optional filters.

Module: wordpress | Returns: array -- Array of comment objects.

wordpress.listComments {"post":"123","status":"approved"}
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, post, status (approved, hold, spam, trash), search, author, orderby, order

getComment

Get a single comment by ID.

Module: wordpress | Returns: object -- Comment object.

wordpress.getComment "456"
ParameterTypeRequiredDescription
commentIdstringYesComment ID

createComment

Create a new comment.

Module: wordpress | Returns: object -- Created comment object.

wordpress.createComment {"post":123,"content":"Great article!","author_name":"John"}
ParameterTypeRequiredDescription
commentobjectYesComment object (post, content, author_name, author_email, parent, status)

updateComment

Update an existing comment.

Module: wordpress | Returns: object -- Updated comment object.

wordpress.updateComment "456" {"content":"Edited comment"}
ParameterTypeRequiredDescription
commentIdstringYesComment ID
updatesobjectYesFields to update (content, status, etc.)

deleteComment

Delete a comment (trash or force-delete).

Module: wordpress | Returns: object -- Deleted/trashed comment.

wordpress.deleteComment "456"
ParameterTypeRequiredDescription
commentIdstringYesComment ID
forcebooleanNoPermanently delete (default: false = trash)

moderateComment

Change a comment's moderation status.

Module: wordpress | Returns: object -- Updated comment object.

wordpress.moderateComment "456" "approved"
ParameterTypeRequiredDescription
commentIdstringYesComment ID
statusstringYesNew status: approved, hold, spam, trash

listMedia

List media library items.

Module: wordpress | Returns: array -- Array of media objects.

wordpress.listMedia {"media_type":"image","per_page":20}
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, search, media_type (image, video, audio, application), mime_type, orderby, order

getMedia

Get a media item by ID.

Module: wordpress | Returns: object -- Media object with source_url, dimensions, etc.

wordpress.getMedia "789"
ParameterTypeRequiredDescription
mediaIdstringYesMedia ID

uploadMedia

Upload a media file.

Module: wordpress | Returns: object -- Uploaded media object with source_url.

wordpress.uploadMedia "photo.png" content "image/png"
ParameterTypeRequiredDescription
filenamestringYesFile name
contentstringYesFile content
mimeTypestringNoMIME type (default: image/png)

updateMedia

Update media metadata (title, alt_text, caption, description).

Module: wordpress | Returns: object -- Updated media object.

wordpress.updateMedia "789" {"alt_text":"Hero image","caption":"Homepage banner"}
ParameterTypeRequiredDescription
mediaIdstringYesMedia ID
updatesobjectYesFields: title, alt_text, caption, description

deleteMedia

Permanently delete a media item.

Module: wordpress | Returns: object -- Deletion confirmation.

wordpress.deleteMedia "789"
ParameterTypeRequiredDescription
mediaIdstringYesMedia ID
forcebooleanNoForce permanent deletion (default: true)

listUsers

List users on the site.

Module: wordpress | Returns: array -- Array of user objects.

wordpress.listUsers {"roles":"administrator"}
ParameterTypeRequiredDescription
optionsobjectNoOptions: per_page, page, search, roles, orderby, order

getUser

Get a user by ID.

Module: wordpress | Returns: object -- User object.

wordpress.getUser "1"
ParameterTypeRequiredDescription
userIdstringYesUser ID

createUser

Create a new user.

Module: wordpress | Returns: object -- Created user object.

wordpress.createUser {"username":"john","email":"john@example.com","password":"SecureP@ss","roles":["editor"]}
ParameterTypeRequiredDescription
userobjectYesUser object (username, email, password required; also: first_name, last_name, roles, description)

updateUser

Update a user's profile.

Module: wordpress | Returns: object -- Updated user object.

wordpress.updateUser "2" {"roles":["administrator"],"first_name":"John"}
ParameterTypeRequiredDescription
userIdstringYesUser ID
updatesobjectYesFields to update (first_name, last_name, email, roles, description, etc.)

deleteUser

Delete a user and reassign their content.

Module: wordpress | Returns: object -- Deletion confirmation.

wordpress.deleteUser "5" "1"
ParameterTypeRequiredDescription
userIdstringYesUser ID to delete
reassignTostringYesUser ID to reassign content to (required by WordPress)

getMeta

Get custom fields/meta for a post or page.

Module: wordpress | Returns: object -- Object containing meta fields.

wordpress.getMeta "posts" "123"
ParameterTypeRequiredDescription
postTypestringNoPost type endpoint: 'posts' or 'pages' (default: posts)
postIdstringYesPost/Page ID

updateMeta

Update custom fields/meta on a post or page.

Module: wordpress | Returns: object -- Updated post/page object.

wordpress.updateMeta "posts" "123" {"custom_field":"value","price":"29.99"}
ParameterTypeRequiredDescription
postTypestringNoPost type endpoint: 'posts' or 'pages' (default: posts)
postIdstringYesPost/Page ID
metaobjectYesMeta key-value pairs to set

deleteMeta

Remove a custom field/meta key from a post or page.

Module: wordpress | Returns: object -- Updated post/page object.

wordpress.deleteMeta "posts" "123" "custom_field"
ParameterTypeRequiredDescription
postTypestringNoPost type endpoint: 'posts' or 'pages' (default: posts)
postIdstringYesPost/Page ID
metaKeystringYesMeta key to remove

listRevisions

List revisions for a post or page.

Module: wordpress | Returns: array -- Array of revision objects.

wordpress.listRevisions "posts" "123"
ParameterTypeRequiredDescription
postTypestringNoPost type endpoint: 'posts' or 'pages' (default: posts)
postIdstringYesPost/Page ID

getRevision

Get a specific revision.

Module: wordpress | Returns: object -- Revision object with content diff.

wordpress.getRevision "posts" "123" "456"
ParameterTypeRequiredDescription
postTypestringNoPost type endpoint (default: posts)
postIdstringYesPost/Page ID
revisionIdstringYesRevision ID

deleteRevision

Permanently delete a revision.

Module: wordpress | Returns: object -- Deletion confirmation.

wordpress.deleteRevision "posts" "123" "456"
ParameterTypeRequiredDescription
postTypestringNoPost type endpoint (default: posts)
postIdstringYesPost/Page ID
revisionIdstringYesRevision ID

listTaxonomies

List all registered taxonomies.

Module: wordpress | Returns: object -- Object of taxonomy definitions.

wordpress.listTaxonomies
ParameterTypeRequiredDescription
(none)NoCall with no arguments

listTerms

List terms for any taxonomy.

Module: wordpress | Returns: array -- Array of term objects.

wordpress.listTerms "categories" {"search":"tech"}
ParameterTypeRequiredDescription
taxonomystringYesTaxonomy REST slug (e.g. 'categories', 'tags', or custom)
optionsobjectNoOptions: per_page, page, search, parent, orderby, order

createTerm

Create a term in any taxonomy.

Module: wordpress | Returns: object -- Created term object.

wordpress.createTerm "categories" "DevOps" {"slug":"devops"}
ParameterTypeRequiredDescription
taxonomystringYesTaxonomy REST slug
namestringYesTerm name
optionsobjectNoOptions: description, parent, slug

listPlugins

List all installed plugins with status.

Module: wordpress | Returns: array -- Array of plugin objects with name, status, version.

wordpress.listPlugins
ParameterTypeRequiredDescription
(none)NoCall with no arguments

activatePlugin

Activate a plugin.

Module: wordpress | Returns: object -- Updated plugin object.

wordpress.activatePlugin "akismet/akismet"
ParameterTypeRequiredDescription
pluginstringYesPlugin slug (e.g. 'akismet/akismet')

deactivatePlugin

Deactivate a plugin.

Module: wordpress | Returns: object -- Updated plugin object.

wordpress.deactivatePlugin "akismet/akismet"
ParameterTypeRequiredDescription
pluginstringYesPlugin slug (e.g. 'akismet/akismet')

installPlugin

Install a plugin from the WordPress.org marketplace.

Module: wordpress | Returns: object -- Installed plugin object with name, version, status.

wordpress.installPlugin "plugin-slug" true
ParameterTypeRequiredDescription
slugstringYesPlugin slug from wordpress.org
activatebooleanNoActivate immediately after install (default: false)

deletePlugin

Delete (uninstall) a plugin. Plugin must be deactivated first.

Module: wordpress | Returns: object -- Deletion confirmation.

wordpress.deletePlugin "folder/plugin-file"
ParameterTypeRequiredDescription
pluginstringYesPlugin slug with folder (e.g. 'folder/plugin-file')

listThemes

List all installed themes.

Module: wordpress | Returns: array -- Array of theme objects.

wordpress.listThemes
ParameterTypeRequiredDescription
(none)NoCall with no arguments

activateTheme

Activate a theme.

Module: wordpress | Returns: object -- Updated theme object.

wordpress.activateTheme "twentytwentyfour"
ParameterTypeRequiredDescription
themestringYesTheme stylesheet slug (e.g. 'twentytwentyfour')

getSettings

Get site settings (title, description, timezone, etc.).

Module: wordpress | Returns: object -- Site settings object.

wordpress.getSettings
ParameterTypeRequiredDescription
(none)NoCall with no arguments

updateSettings

Update site settings.

Module: wordpress | Returns: object -- Updated settings object.

wordpress.updateSettings {"title":"My Enterprise Site","description":"The best site"}
ParameterTypeRequiredDescription
settingsobjectYesSettings to update (title, description, timezone_string, date_format, etc.)

search

Global search across all content types.

Module: wordpress | Returns: array -- Array of search result objects with title, url, type.

wordpress.search "migration guide"
ParameterTypeRequiredDescription
querystringYesSearch query
optionsobjectNoOptions: per_page, page, type (post, term, post-format), subtype

bulkUpdatePosts

Update multiple posts at once with the same changes.

Module: wordpress | Returns: array -- Array of updated post objects.

wordpress.bulkUpdatePosts ["1","2","3"] {"status":"publish","categories":[5]}
ParameterTypeRequiredDescription
postIdsarrayYesArray of post IDs to update
updatesobjectYesFields to apply to all posts

bulkDeletePosts

Delete multiple posts at once.

Module: wordpress | Returns: array -- Array of deletion results.

wordpress.bulkDeletePosts ["10","11","12"]
ParameterTypeRequiredDescription
postIdsarrayYesArray of post IDs to delete
forcebooleanNoPermanently delete (default: false = trash)

Error Handling

All functions throw on failure. Common errors:

ErrorCause
WordPress API error (${res.status}): ${text}Check the error message for details
wordpress.setCredentials requires siteUrl, username, and appPassword.Check the error message for details
wordpress.getPost requires a postId.Check the error message for details
wordpress.createPost requires a post object.Check the error message for details
wordpress.updatePost requires postId and post object.Check the error message for details
wordpress.deletePost requires a postId.Check the error message for details
wordpress.createPage requires a page object.Check the error message for details
wordpress.updatePage requires pageId and page object.Check the error message for details
@desc "List posts and validate result"
do
  set $result as wordpress.listPosts {"per_page":5,"status":"publish"}
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate Posts

Retrieve all items and loop through them.

@desc "Setup authentication"
do
  wordpress.setCredentials $token
enddo

@desc "List posts and iterate results"
do
  set $result as wordpress.listPosts {"per_page":5,"status":"publish"}
  each $item in $result
    print $item
  end
enddo

2. Create a new item with createPost

Create a new resource and capture the result.

@desc "Setup authentication"
do
  wordpress.setCredentials $token
enddo

@desc "Create post"
do
  set $result as wordpress.createPost {"title":"My Post","content":"<p>Hello</p>","status":"draft"}
  print "Created: " + $result
enddo

3. Create and update workflow

Create an item and then update it.

@desc "Setup authentication"
do
  wordpress.setCredentials $token
enddo

@desc "Create post and update post"
do
  set $created as wordpress.createPost {"title":"My Post","content":"<p>Hello</p>","status":"draft"}
  # Update the created item
  wordpress.updatePost "123" {"title":"Updated","status":"publish"}
enddo

4. Check before creating

List existing items and only create if needed.

@desc "Setup authentication"
do
  wordpress.setCredentials $token
enddo

@desc "List posts and create post"
do
  set $existing as wordpress.listPosts {"per_page":5,"status":"publish"}
  if $existing == null
    wordpress.createPost {"title":"My Post","content":"<p>Hello</p>","status":"draft"}
    print "Item created"
  else
    print "Item already exists"
  end
enddo

5. Multi-step WordPress workflow

Chain multiple wordpress operations together.

@desc "Setup authentication"
do
  wordpress.setCredentials $token
enddo

@desc "List posts, get post, and more"
do
  set $r_listPosts as wordpress.listPosts {"per_page":5,"status":"publish"}
  set $r_getPost as wordpress.getPost "123"
  set $r_createPost as wordpress.createPost {"title":"My Post","content":"<p>Hello</p>","status":"draft"}
  print "All operations complete"
enddo

6. Safe listPosts with validation

Check results before proceeding.

@desc "Setup authentication"
do
  wordpress.setCredentials $token
enddo

@desc "List posts and validate result"
do
  set $result as wordpress.listPosts {"per_page":5,"status":"publish"}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • json -- JSON module for complementary functionality

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/wordpress

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size13.3 KB
Versions1
Weekly Downloads23
Total Downloads23
Stars0
Last Publish1 months ago
Created1 months ago

Keywords

Category

web