Skip to content

scottgonzalez/node-wordpress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

node.js client for WordPress

Resources

License

Stars

Watchers

Forks

Packages

No packages published