Skip to main content

A thin wrapper for the Wordpress JSON API

Project description

python-wordpress-json
---------------------

.. image:: https://travis-ci.org/stylight/python-wordpress-json.svg?branch=master
:target: https://travis-ci.org/stylight/python-wordpress-json

Super thin Python wrapper for the `Wordpress REST API <http://wp-api.org/>`_ developed by
`Stylight <http://www.stylight.de/>`_. Supports the documented read and write endpoints. Extensions and pull requests are encouraged and welcome.

Limitations:

* doesn't check input parameters
* returns a single dictionary or a list of dictionaries, depending on the API endpoint
* only supports basic auth, and it currently cannot be used without authentication

Dependencies:

* requests

Installation
============

::

pip install wordpress-json

`Official PyPI wordpress-json page <https://pypi.python.org/pypi/wordpress-json/>`_

Before being able to use this package make sure you configure Wordpress properly;

Wordpress configuration
=======================

1. You need to install the WP-API Plugin. To do so:
- Go to your Wordpress Dashboard
- Click on Plugins in the left sidebar
- Search for "WP-API". Install the plugin named "WP REST API (WP API)", by clicking on the "Install" button.
- Activate the plugin on the next screen.

2. You need to install and activate the Basic-Auth plugin for the WP-API :

- download https://github.com/WP-API/Basic-Auth/archive/master.zip
- Open your Wordpress Admin Dashboard
- Click on Plugins in the left sidebar
- Click on "Add New" on the top right, next to "Plugin"
- Click on "Upload Plugin", Choose File, and select the file you downloaded at step 1 (master.zip)
- Click on Install Now
- Activate the plugin on the next screen.

Usage
============

.. code-block:: python

from wordpress_json import WordpressJsonWrapper
import json

# construct a wrapper

wp = WordpressJsonWrapper("http://example.com/wp-json", "wp_user", "wp_password")

# optional headers
headers = {
"User-Agent": "curl",
"Content-Type": "text/json",
# ...
}

# make requests, e.g. list posts
print "----------- list posts -------------"

posts = wp.get_posts()
print json.dumps(posts);

# or with headers
print "------------ list posts with headers------------"
posts = wp.get_posts(headers=headers)
print json.dumps(posts);

# list posts with filter
print "-------------list posts with draft status-----------"
posts = wp.get_posts(filter={"status": "draft"})
print json.dumps(posts);


print "------------- create new post-----------"

data = {
"title": "My first pony",
"content": "He's wild!",
"exerpt": ""
# ...
}

# only one of title, content and excerpt is required to create a post
new_post = wp.create_post(data=data)
print json.dumps(new_post);

# get metadata for a post
print "------------- Get Metadata-----------"
meta = wp.get_meta(post_id=1)
print json.dumps(meta);

# or
meta = wp.get_meta(post_id=1, meta_id=5)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wordpress_json-0.1.3.tar.gz (4.4 kB view details)

Uploaded Source

File details

Details for the file wordpress_json-0.1.3.tar.gz.

File metadata

File hashes

Hashes for wordpress_json-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fc8b836ca100f7e79f739d9e0fb13c6a7b0a360cf59f2b8171f60d2aefe58cdf
MD5 b8e3e9265d8fc146f5ecc07677a38a14
BLAKE2b-256 f8b5fb03e2ca87821adec8abeb0b04e3ed528093e0fda9da530aacb24bc8967b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page