Skip to main content

A thin wrapper for the Wordpress JSON API

Project description

https://img.shields.io/travis/stylight/python-wordpress-json.svg https://img.shields.io/pypi/v/wordpress_json.svg

Super thin Python wrapper for the Wordpress REST API V2 developed by Stylight. 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

  • six

Installation

pip install 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 “REST API”. Install the plugin named “WordPress REST API (Version 2)”, by clicking on the “Install” button.

    • Activate the plugin on the next screen.

  2. You need to install and activate the WP REST API Meta Endpoints plugin for the WP-API :

    • Click on Plugins in the left sidebar

    • Click on “Add New” on the top right, next to “Plugin”

    • Search for “WP REST API Meta Endpoints”. Install the plugin named “WP REST API Meta Endpoints”, by clicking on the “Install” button.

    • Activate the plugin on the next screen.

  3. 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.

  4. Change permalink configuration to ‘Post name’ in Permalink Settings.

Usage

>>> wp = WordpressJsonWrapper('http://example.com/wp-json/wp/v2', 'wp_user', 'wp_password')
>>> posts = wp.get_posts()
>>> posts[0].keys()
dict_keys(['format', 'featured_media', 'author', ...])

>>> posts[0].get('title')
{'rendered': 'Tweetle Beetles'}

>>> posts[0].get('content')
{'rendered': '<p>What do you know about tweetle beetles? ...'}

>>> posts[0].get('id')
42

>>> wp.create_meta(post_id=42, data=dict(key='genre', value='fanciful'))

>>> meta = wp.get_meta(post_id=42)
>>> meta[0].get('key')
'genre'

>>> meta[0].get('value')
'fanciful'

Release History

0.2.3 (2016-08-17)

Bugfixes

  • Fix error handling

Documentation

  • Update example usage with correct namespace for v2

0.2.2 (2016-07-22)

Improvements

  • six and requests libraries not pinned to versions

0.2.1 (2016-07-20)

Bugfixes

  • Fix syntax errors in README.rst

  • Add missing dependency six to setup.py

Miscellaneous

  • Update authors

0.2.0 (2016-07-20)

Improvements

  • Update for v2 WP-API

0.1.5 (2015-07-16)

Bugfixes

  • Include HISTORY.rst in setup.py

0.1.4 (2015-07-16)

Documentation

  • Fix syntax errors in README.rst and HISTORY.rst

0.1.3 (2015-07-16)

Improvements

  • Allow raw url parameters to be passed in and used for the API calls

0.1.2 (2015-02-03)

Improvements

  • Allow headers to be passed in and used for the API calls

Documentation

  • Add HISTORY.rst (this change log)

0.1.1 (2015-01-27)

Bugfixes

  • Use json parameter instead of data parameter for requests

0.1.0 (2015-01-27)

  • Birth!

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.2.3.tar.gz (5.4 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for wordpress_json-0.2.3.tar.gz
Algorithm Hash digest
SHA256 1edfc20865a6a9eec9b31f722d441053323d255816e182afaae7b1e4e0651f87
MD5 a29acb6e46cfc324f3b6e84e83d1ffe8
BLAKE2b-256 6a61ebbc6ba7993e500d45ffc58735ef2f7806973d6ebe6c45bb59ef24b304d2

See more details on using hashes here.

Supported by

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