README
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.gimg/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.