node.js client for WordPress
JavaScript
Latest commit c0b02ad Sep 23, 2016 @NathanKleekamp NathanKleekamp committed with Add support for the Media API
Closes gh-49

readme.md

node-wordpress

A node.js JavaScript client for working with WordPress.

Support this project by donating on Gratipay.

Requires WordPress 3.4 or newer (uses the WordPress XML-RPC API).

Installation

npm install wordpress

Usage

var wordpress = require( "wordpress" );
var client = wordpress.createClient({
    url: "my-site.com",
    username: "admin",
    password: "secret"
});

client.getPosts(function( error, posts ) {
    console.log( "Found " + posts.length + " posts!" );
});

More usage examples can be found in the examples directory.

Full Site Synchronization

Looking for a way to manage your WordPress site without writing a bunch of code? Use Gilded WordPress to easily synchronize your entire site from a local directory.

API

Note: In order to provide a slightly nicer API, the XML-RPC field names have been mapped to CamelCase names. In some cases, the names are also altered because the original names are awkward. See the Fields section for a list of fields by type.

Client

wordpress.createClient( settings )

Creates a new client instance.

  • settings: A hash of settings that apply to all requests for the new client.
    • username: The username for the WordPress account.
    • password: The password for the WordPress account.
    • url: The URL for the WordPress install.
    • host (optional): The actual host to connect to if different from the URL, e.g., when deploying to a local server behind a firewall.
    • blogId (optional; default: 0): The blog ID for the WordPress install.
    • rejectUnauthorized (optional; default: true): A boolean indicating whether Node.js should automatically reject clients with invalid certificates. See tls.createSecurePair() in Node's documentation.
    • basicAuth (optional): An object holding HTTP basic authentication credentials.
      • username: The username for the HTTP basic auth.
      • password: The password for the HTTP basic auth.

wordpress.Client

The constructor used for client connections. Useful for creating extensions.

Posts

client.getPost( id [, fields], callback )

Gets a post by ID.

  • id: The ID of the post to get.
  • fields (optional): An array of fields to return.
  • callback (function( error, post )): A callback to invoke when the API call is complete.
    • post: An object containing the post data.

client.getPosts( [filter] [, fields], callback )

Gets all posts, optionally filtered.

  • filter (optional): A hash of key/value pairs for filtering which posts to get.
  • fields (optional): An array of fields to return.
  • callback (function( error, posts )): A callback to invoke when the API call is complete.
    • posts: An array containing the posts.

client.newPost( data, callback )

Creates a new post.

  • data: The data for the new post.
  • callback (function( error, id )): A callback to invoke when the API call is complete.
    • id: The ID of the new post.

client.editPost( id, data, callback )

Edits an existing post.

  • id: The ID of the post to edit.
  • data: The data to update on the post.
  • callback (function( error )): A callback to invoke when the API call is complete.

client.deletePost( id, callback )

Deletes a post.

NOTE: Deleting a post may move it to the trash and then deleting a second time will actually delete.

  • id: The ID of the post to delete.
  • callback (function( error )): A callback to invoke when the API call is complete.

client.getPostType( name, [, fields], callback )

Gets a post type by name.

  • name: The name of the post type to get.
  • fields (optional): An array of fields to return.
  • callback (function( error, postType )): A callback to invoke when the API call is complete.
    • postType: An object containing the post type data.

client.getPostTypes( [filter], [, fields], callback )

Gets all post types.

  • filter (optional): A hash of key/value pairs for filtering which posts types to get.
  • fields (optional): An array of fields to return.
  • callback (function( error, postTypes )): A callback to invoke when the API call is complete.
    • postTypes: An array containing the post types.

Taxonomies

client.getTaxonomy( name, callback )

Gets a taxonomy by name.

  • name: The name of the taxonomy to get.
  • callback (function( error, taxonomy )): A callback to invoke when the API call is complete.
    • taxonomy: An object containing the taxonomy data.

client.getTaxonomies( callback )

Gets all taxonomies.

  • callback (function( error, taxonomies )): A callback to invoke when the API call is complete.
    • taxonomies: An array containing the taxonomies.

client.getTerm( taxonomy, id, callback )

Gets a taxonomy term by ID.

  • taxonomy: The name fo the taxonomy the term belongs to.
  • id: The ID of the term to get.
  • callback (function( error, term )): A callback to invoke when the API call is complete.
    • term: An object containing the taxonomy term data.

client.getTerms( taxonomy [, fields], callback )

Gets all taxonomy terms.

  • taxonomy: The name fo the taxonomy the term belongs to.
  • fields (optional): An array of fields to return.
  • callback (function( error, terms )): A callback to invoke when the API call is complete.
    • terms: An array containing the taxonomy terms.

client.newTerm( data, callback )

Creates a new taxonomy term.

  • data: The data for the new taxonomy term.
  • callback (function( error, id )): A callback to invoke when the API call is complete.
    • id: The ID of the new taxonomy term.

client.editTerm( id, data, callback )

Edits an existing taxonomy term.

  • id: The ID of the taxonomy term to edit.
  • data: The data to update on the taxonomy.
  • callback (function( error )): A callback to invoke when the API call is complete.

client.deleteTerm( taxonomy, id, callback )

Deletes a taxonomy term.

  • taxonomy: The name fo the taxonomy the term belongs to.
  • id: The ID of the taxonomy term to delete.
  • callback (function( error )): A callback to invoke when the API call is complete.

Media

client.getMediaItem( id, callback )

Gets a piece of media by ID.

  • id: The ID of the piece of media to get.
  • callback (function( error, media ) ): A callback to invoke when the API call is complete.

client.getMediaLibrary( [filter], callback )

  • filter (optional): A hash of key/value pairs for filtering which posts to get.
  • callback (function( error, media ) ): A callback to invoke when the API call is complete.

client.uploadFile( data, callback )

Uploads a file to Wordpress.

  • data: The data for the file to upload.
    • name: The filename.
    • type: The file MIME type, e.g img/jpg.
    • bits: Binary data.
    • overwrite (optional): Whether this file should overwrite any existing file of the same name.
    • postId (optional): Which post to assign the attachment to.
  • callback (function( error, file )): A callback to invoke when the API call is complete.
    • file: An object containing the file data.

Utilities

client.listMethods( callback )

Gets a list of all avaialble methods.

  • callback (function( error, methods )): A callback to invoke when the API call is complete.
    • methods: An array of methods.

client.call( method [, args... ], callback )

Invokes a method.

  • method: The method to call.
  • args (optional): Arguments to pass to the method.
  • callback (function( error [, data] )): A callback to invoke when the API call is complete.
    • data: Data returned by the method.

client.authenticatedCall( method [, args... ], callback )

Invokes a method with the username and password provided by the client.

  • method: The method to call.
  • args (optional): Arguments to pass to the method.
  • callback (function( error [, data] )): A callback to invoke when the API call is complete.
  • data: Data returned by the method.

Fields

Files

  • name
  • type
  • bits
  • overwrite
  • postId

Labels

  • addNewItem
  • addOrRemoveItems
  • allItems
  • chooseFromMostUsed
  • editItem
  • menuName
  • name
  • nameAdminBar
  • newItemName
  • parentItem
  • parentItemColon
  • popularItems
  • searchItems
  • separateItemsWithCommas
  • singularName
  • updateItem
  • viewItem

Posts

  • author
  • commentStatus
  • content
  • customFields
  • date
  • excerpt
  • format
  • id
  • link
  • modified
  • menuOrder
  • name
  • pageTemplate
  • parent
  • password
  • pingStatus
  • status
  • sticky
  • terms
  • termNames
  • thumbnail
  • title
  • type

Post Types

  • cap
  • capabilityType
  • description
  • _editLink
  • excludeFromSearch
  • hasArchive
  • hierarchical
  • label
  • labels
  • mapMetaCap
  • menuIcon
  • menuPosition
  • name
  • "public
  • publiclyQuerably
  • queryVar
  • rewrite
  • showInAdminBar
  • showInMenu
  • showInNavMenus
  • showUi
  • supports
  • taxonomies

Post Type Capabilities

  • deleteOthersPosts
  • deletePost
  • deletePosts
  • deletePrivatePosts
  • deletePublishedPosts
  • editOthersPosts
  • editPost
  • editPosts
  • editPrivatePosts
  • editPublishedPosts
  • publishPosts
  • read
  • readPost
  • readPrivatePosts

Taxonomies

  • cap
  • hierarchical
  • name
  • label
  • labels
  • objectType
  • public
  • queryVar
  • rewrite
  • showInNavMenus
  • showTagCloud
  • showUi

Taxanomy Capabilities

  • assignTerms
  • deleteTerms
  • editTerms
  • manageTerms

Terms

  • count
  • description
  • name
  • parent
  • slug
  • taxonomy
  • termId
  • termTaxonomyId

Media

  • attachmentId
  • caption
  • date
  • description
  • link
  • metadata
    • file
    • height
    • imageMeta
      • aperture
      • camera
      • caption
      • copyright
      • createdTimestamp
      • credit
      • focalLength
      • iso
      • keywords
      • orientation
      • shutterSpeed
      • title
    • sizes
      • file
      • height
      • mimeType
      • width
    • width
  • parent
  • thumbnail
  • title
  • type

License

Copyright Scott González. Released under the terms of the MIT license.


Support this project by donating on Gratipay.