Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scottgonzalez/node-wordpress
node.js client for WordPress
https://github.com/scottgonzalez/node-wordpress
Last synced: 5 days ago
JSON representation
node.js client for WordPress
- Host: GitHub
- URL: https://github.com/scottgonzalez/node-wordpress
- Owner: scottgonzalez
- License: mit
- Created: 2012-02-26T03:28:14.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-05-05T19:45:56.000Z (over 1 year ago)
- Last Synced: 2024-11-02T12:33:57.782Z (11 days ago)
- Language: JavaScript
- Homepage:
- Size: 89.8 KB
- Stars: 524
- Watchers: 25
- Forks: 102
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# node-wordpress
A node.js JavaScript client for working with WordPress.
Support this project by [donating on Gratipay](https://gratipay.com/scottgonzalez/).
Requires WordPress 3.4 or newer (uses the [WordPress XML-RPC API](http://codex.wordpress.org/XML-RPC_WordPress_API)).
## Installation
```
npm install wordpress
```## Usage
```js
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](https://github.com/scottgonzalez/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](#fields) 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()](https://nodejs.org/api/tls.html#tls_tls_createsecurepair_context_isserver_requestcert_rejectunauthorized_options) 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](https://gratipay.com/scottgonzalez/).