WordPress plugin intelligence profile

WPML JSON API

An extension to JSON-API for sites using the WPML Multilingual CMS plugin.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 3.4
Current version0.1.3
WordPress coverageTested up to WordPress 3.4
Minimum stackWP 2.8 · PHP —
Directory statusactive
Last directory update12 Dec 201213y ago
Active installations10Adoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records WPML JSON API version 0.1.3 as active, updated 13y ago and tested up to WordPress 3.4.

Overview

About this plugin

This plugin filters the response content of requests made to the WordPress JSON-API to include data for translations created through the WPML Multilingual CMS plugin. One may also request the translation of response objects to a supported target language.

The Office of Letters and Light uses this plugin to integrate WordPress and WPML with its Rails-built National Novel Writing Month event-site application. We use WordPress to manage all back-end site content and our Kiosk Ruby gem for consuming, caching, searching, and serving the content through Rails. This could not have been so easily accomplished without the well-built and extensible JSON-API for which we are grateful.

And without the WPML plugin, we would not have such an intuitive and capable CMS i18n interface.

Usage

Please be familiar with the

JSON-API.

  • Augmented response objects
  • 1.1. Language
  • 1.2. Translations
  • Filtering response objects by language
  • 2.1. Specifying the language
  • 2.2. Filtered results
  • Response object translation
  • 3.1 Specifying the target language
  • 3.2 Translated results
  • 3.3 Translatable objects and properties

1. Augmented response objects

1.1. Language

After enabling the WPML JSON-API plugin, response objects will contain the

language in which the object content was written.

dev=1&id=127.

<\/p>\n<blockquote><p>Best damn page ever. – Dan<\/p><\/blockquote>\n", "excerpt": "This is the best page ever created. Best damn page ever.

– Dan", "date": "2011-09-22 18:48:09", "modified": "2011-09-22 18:54:55", "categories": [], "tags": [], "author": { "id": 4, "slug": "dzachary", "name": "Daniel Duvall", "first_name": "Daniel", "last_name": "Duvall", "nickname": "Daniel Duvall", "url": "", "description": "" }, "comments": [], "attachments": [], "comment_count": 0, "comment_status": "open", "translations": { "en": { "post_title": "The Best Page", "post_status": "publish", "id": 21, "language_code": "en", "is_original": true, "resource_id": 127 }, "es": { "post_title": "La P\u00e1gina Mejor", "post_status": "publish", "id": 22, "language_code": "es", "is_original": false, "resource_id": 131 } }, "language": "en" } }

The language property specifies the code of the language in which the page

was written—pretty simple.

1.2. Translations

1.

include data for each published resource that comprises a translation of

its parent object.

"translations": { "en": { "post_title": "The Best Page", "post_status": "publish", "id": 21, "language_code": "en", "is_original": true, "resource_id": 127 }, "es": { "post_title": "La P\u00e1gina Mejor", "post_status": "publish", "id": 22, "language_code": "es", "is_original": false, "resource_id": 131 }

Properties included in each member of the translations object depend on the

type of parent object.

All post and page objects will include the following.

  • id – The ID of the translation object.
  • language_code – The code of the language in which the translation is written. Each translation object is also keyed by this value.
  • is_original – Specifies whether the language of this translation is the language in which the original work was written.
  • resource_id – The ID of the translated version of the parent object.
  • post_title – The title of the translated post/page.
  • post_status – The status of the translated post/page. Always ‘publish’.
  • post_id – Redundancy of resource_id.

All category objects will include the following.

  • id – The ID of the translation object.
  • language_code – The code of the language to which the category was translated.
  • is_original – Specifies whether the language of this translation is the language of the original category.
  • resource_id – The ID of the translated version of the parent object.
  • name – The translated category name.
  • term_id – Redundancy of resource_id.
  • post_count – The number of posts tagged with the translated category.

2. Filtering response objects by language

You may tell the API to only return objects for a specific language by using

the language parameter.

2.1. Specifying the language

The language parameter should be one of the supported language codes.

Example:

  • http://wordpress.site.example/api/get_category_index/?language=es&dev=1

2.2. Filtered results

1.

{ "status": "ok", "count": 2, "categories": [ { "id": 13, "slug": "noticias-de-ultima-hora-2", "title": "Noticias de \u00daltima Hora", "description": "", "parent": 0, "post_count": 1, "translations": { "en": { "name": "Breaking News", "term_id": 4, "post_count": 2, "id": 9, "language_code": "en", "is_original": true, "resource_id": 4 }, "es": { "name": "Noticias de \u00daltima Hora", "term_id": 13, "post_count": 1, "id": 26, "language_code": "es", "is_original": false, "resource_id": 13 } }, "language": "es" } ] }<h3>3.

Response object translation</h3>

You can request objects to be translated before they are returned. This may

save you some requests if you have the slug or ID and just need the object in

a specific language.

3.1. Specifying the target language

The target language can be specified by passing a to_language parameter. The

value should be one of the supported language codes.

Example:

  • http://wordpress.site.example/api/get_page/?slug=the-best-page&to_language=es&dev=1

3.2. Translated results

1.

<\/p>\n<blockquote><p>Best damn page ever. – Dan<\/p><\/blockquote>\n", "excerpt": "Esta es la p\u00e1gina mejor se haya creado. Best damn page ever.

– Dan", "date": "2011-09-22 18:48:09", "modified": "2011-09-22 18:54:55", "categories": [], "tags": [], "author": { "id": 4, "slug": "dzachary", "name": "Daniel Duvall", "first_name": "Daniel", "last_name": "Duvall", "nickname": "Daniel Duvall", "url": "", "description": "" }, "comments": [], "attachments": [], "comment_count": 0, "comment_status": "open", "translations": { "en": { "post_id": 127, "post_title": "The Best Page", "post_status": "publish", "id": 21, "language_code": "en", "is_original": true, "resource_id": 127 }, "es": { "post_id": 131, "post_title": "La P\u00e1gina Mejor", "post_status": "publish", "id": 22, "language_code": "es", "is_original": false, "resource_id": 131 } }, "language": "es", "translated": true, "original_slug": "the-best-page", "original_title": "The Best Page", "original_title_plain": "The Best Page" } }

As you can see the slug, title, title_plain, excerpt, and content

properties have been rewritten with the Spanish translation. In addition, the

original properties have been prefixed with original_. This is always the

case for all properties except for excerpt and content. In an effort to

save on response size, the latter have been omitted.

3.3. Translatable objects and properties

Here are all of the translatable object types and their translatable

2.

Objects post and page:

  • slug
  • title
  • title_plain
  • excerpt
  • content

Objects tag and category:

  • slug
  • title
  • description
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • api
  • cms
  • i18n
  • json
  • wpml
Compatibility & maintenance

Compatibility & maintenance

Tested up to WordPress 3.4

Not yet marked as tested with WordPress 7.1. WordPress.org currently lists Tested up to 3.4.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to3.4
Minimum requirementsWordPress 2.8 · PHP not listed
Update activity12 Dec 201213y ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.