Descripción
Display live data from a JSON-feed / API on your wordpress-site!
Grab JSON from an URL and convert it to HTML on a WordPress-Page
JSON Content Importer – API- and Webservice-Connector – Powerful and Simple JSON-Import Plugin:
- Use a templateengine to display the data from an JSON-Feed.
- Define the url of the JSON-Feed, a template for it and other options like number of displayed items, cachetime etc..
- Cacher with new Option: If a http-API request fails, you can use the maybe cached JSON. Set the radio-button in the plugins settings: what API-problem should be handled how (either a non valid API-http-response or a non JSON-API-response – or both). By default for backwards-compatibility this is switched off. Recommendation: Switch on the plugins-cacher (e. g. some minutes) and select the radiobutton for “If the API-http-answercode is not 200 OR sends invalid JSON: try to use cached JSON” in the plugins options.
- The templateengine inserts the JSON-data in the template.
- You can either use this as wordpress-shortcode inside a page – whereby some extras like urlencoding can be invoked.
- Or use the Gutenberg Mode: Then you don’t have the hassle to put an shortcode together, test it and change it. With a Gutenberg-Block you can test it in realtime and create a shortcode (if you want to stay with shortcodes).
How to start and help
How to example of using the plugin
Basic structure of the Shortcode:
‘[jsoncontentimporter
- url=”http://…json”
- numberofdisplayeditems=”number: how many items of level 1 should be displayed? display all: leave empty or set -1″
- urlgettimeout=”number: who many seconds for loading url till timeout?”
- basenode=”starting point of datasets, the base-node in the JSON-Feed where the data is”
- oneofthesewordsmustbein=”default empty, if not empty keywords spearated by ‘,’. At least one of these keywords must be in the created text (here: text=code without html-tags)”
-
oneofthesewordsmustbeindepth=”default: 1, number: where in the JSON-tree oneofthesewordsmustbein must be?”
]
This is the template:
Any HTML-Code plus “basenode”-datafields wrapped in “{}”
{subloop:”basenode_subloop”:”number of subloop-datasets to be displayed”}
Any HTML-Code plus “basenode_subloop”-datafields wrapped in “{}”. If JSON-data is HTML add “html” flag like “{fieldname:html}”
{/subloop:”basenode_subloop”}
[/jsoncontentimporter]’ -
templates like “{subloop-array:AAAA:10}{text}{subloop:AAAA.image:10}{id}{/subloop:AAAA.image}{/subloop-array:AAAA}” are possible:
one is the recursive usage of “subloop-array” and “subloop”.
the other is “{subloop:AAAA.image:10}” where “AAAA.image” is the path to an object. This is fine for some JSON-data.
Some special add-ons for datafields
- “{street:purejsondata}”: Default-display of a datafield is NOT HTML, but HTML-Tags are converted : use this to use really the pure data from the JSON-Feed
- “{street:html}”: Default-display of a datafield is NOT HTML: “<” etc. are converted to “&,lt;”. Add “html” to display the HTML-Code as Code.
- “{street:htmlAndLinefeed2htmlLinefeed}”: Same as “{street:html}” plus “\n”-Linefeeds are converted to HTML-Linebreak
- “{street:ifNotEmptyAddRight:,}”: If datafield “street” is not empty, add “,” right of datafield-value. allowed chars are: “a-zA-Z0-9,;_-:<>/ “
- “{street:html,ifNotEmptyAddRight:extratext}”: you can combine “html” and “ifNotEmptyAdd…” like this
- “{street:purejsondata,ifNotEmptyAddLeftRight:LEFT##RIGHT##}”: If datafield “street” is not empty, add text on the left and right
- “{street:ifNotEmptyAdd:,}”: same as “ifNotEmptyAddRight”
- “{street:ifNotEmptyAddLeft:,}”: If datafield “street” is not empty, add “,” left of datafield-value. allowed chars are: “a-zA-Z0-9,;_-:<>/ “
- “{locationname:urlencode}”: Insert the php-urlencoded value of the datafield “locationname”. Needed when building URLs
JSON Content Importer PRO
This free version of “JSON Content Importer” can put together many JSON-Feeds and is flexible with it’s template-engine. But sometimes you might need more:
- application building by creating a searchform and connect it to a JSON-API in the background: pass GET-Variables to use a dynamic JSON-Feed-URL (“talk to API / webservice”)
- much better and more flexible templateengine: twig
- use it as Widget
- create and use Custom Post Types
- usage on multisite installations
- store Templates independent of pages
- more Shortcode-Parameters
- executing Shortcodes inside a template and
- more features…
If the free version comes to your limit, I’m looking forward that you COMPARE PRO and FREE of the JSON Content Importer.
Capturas
Bloques
Este plugin proporciona 1 bloque.
- JSON Content Importer FREE
Instalación
For detailed installation instructions, please read the standard installation procedure for WordPress plugins.
- Login to your WordPress installation
- Install plugin by uploading json-content-importer.zip to
/wp-content/plugins/
. - Activate the plugin through the Plugins menu.
- Klick on “JSON Content Importer” menuentry in the left bar: basic caching-settings and more instructions about usage.
- Cache folder: WP_CONTENT_DIR.’/cache/jsoncontentimporter’. So “WP_CONTENT_DIR.’/cache/'” must be writable for the http-daemon. The plugin checks this and might aborts with an error-message like dir is missing or not writeable. if so: check permissions of the directories.
Preguntas frecuentes
-
Help! I need more information!
-
What does this plugin do?
-
This plugin gives a wp-shortcode for use in a page/blog to import, cache and display JSON-data. Inside wp-shortcode some markups (and attributes like urlencode) are defined to define how to display the data.
-
How can I make sure the plugin works?
-
See this video and try to experiment:
Create a sample-page and use the wordpress-shortcode “jsoncontentimporter”. An example is given in the plugin-configpage and in the “Description”-Section.
there are 2 steps: . access to JSON and convert it to HTML: Step 1: Get access to the JSON-data and Step 2: Convert JSON to HTML.
The Pro-version comes with a installation-check option. -
Who do I find the proper template for my JSON?
-
Check the plugin-website!
Free-Version: If you’re lost: open ticket at wordPress.org please provide the JSON-code or link to it (either in the posting or in a mail to the plugin author). -
Don’t forget:
-
What does this plugin NOT do?
-
The plugins templateengine of the free version is focused on some basic JSON-imports.
If this comes to a limit check out the pro-version: There you can use the twig-templatengine, create custom posts out of JSON and many other features.
Your options if this plugin does not work:- use correct code for this plugin 😉
- if the above is ok, change the JSON-Input
- open ticket at wordPress.org provide the JSON-code there or an email to the plugin-author.
- Check the pro-plugin!
-
Where is this plugin from?
-
This plugin is made in munich, bavaria, germany!
Famous for Oktoberfest, FC Bayern Munich, AllianzArena, DLD, TUM, BMW, Siemens, seas, mountains and much more…
Reseñas
Colaboradores y desarrolladores
Este software es de código abierto. Las siguientes personas han contribuido a este plugin.
Colaboradores"JSON Content Importer" ha sido traducido a 1 idioma local. Gracias a los traductores por sus contribuciones.
Traduce "JSON Content Importer" a tu idioma.
¿Interesado en el desarrollo?
Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.3.17
- WordPress 6.2 changed the way Blocks are rendered. This Update fixes the crash of the JCI-Block with wordpress 6.2
1.3.16
- Fixed security issue: Rio D. discovered and reported a Cross Site Scripting (XSS) vulnerability to Patchstack. Thank you Rio! For utilize you need WordPress-Backend-Access and the affected Page is in the WordPress-Adminarea only. Nevertheless: Update your JCI-Plugin, please!
- PHP 8.1 fixes
1.3.15
- New! Use JCILISTITEM to show a JSON-List: {subloop-array:mylist:no_first_item,no_last_item}AA{JCILISTITEM}BB<
{/subloop-array:mylist}, see https://doc.json-content-importer.com/json-content-importer/free-show-the-data/ for more - Enhanced! “purejsondata,ifNotEmptyAdd”, “purejsondata,ifNotEmptyAddRight”, “purejsondata,ifNotEmptyAddLeftRight” and “purejsondata,ifNotEmptyAddLeft”, e. g. {jsondata:purejsondata,ifNotEmptyAddLeft:TEXT}, see https://doc.json-content-importer.com/json-content-importer/free-show-the-data/ for more
- Plugin Ok with WP 6.1.1
- PHP 8.1 fixes
1.3.14
- New Shortcode-Parameter: “trytorepairjson=16” in the Shortcode removes non ASCII characters from the JSON data
- Bugfix after WordPress 6.0 changes: Load JSONcontentimporter-Quicktag in a slightly different way
- Bugfix: Handling of JSON-Nodes containing ( or )
- Plugin Ok with WP 6.0.2
1.3.13
- Added sslverify-switch in the plugins general options: If a https-certificate is suddenly invalid, try to switch off it’s verification (not ideal, but pragmatic)
- Some improvements for debug-infos (e. g. add debugmode=10 to the shortcode)
- Plugin Ok with WP 5.8.1
1.3.12
- Importaint speed-up Bugfix for JCI-Gutenberg-Block! If you run your WordPress with Gutenberg-Blocks (no ClassicEditor-Plugin active) several unneeded libraries are loaded (independend of using a JCI-Block or not). This slows the site and gives bad load-ratings e. g. at Googles Pagespeed ( https://developers.google.com/speed/pagespeed/ ). With this fix the unneeded libraries are not loaded any more and the load-rating should be better.
- Background-Check for allow_url_fopen in Plugin Options: If allow_url_fopen is not set to TRUE in the PHP-Settings, this might prevent PHP and the plugin to get JSON via http-requests from remote servers (if there no red text, all is ok)
- Plugin Ok with WP 5.6.1
1.3.11
- Internationalization added: Available languages are English, German. Feel free to add other languages!
- Shotcodeparam nojsonvalue: If “nojsonvalue=y” the API-Answer is available as {nojsonvalue}, helpful if the API answer is not JSON
- Plugin Ok with WP 5.6
1.3.10
- Bugfix if subloop’s have several unreplaced {…} items
- Plugin Ok with WP 5.5.1
1.3.9
- Bugfix if a JSON-field is not always there or null (loop stopped if so)
- Placeholders for template: If you want to have curly or square brackets {}[] in the template, this can trouble the shortcode-syntax or the template-parser. Use the placeholders #CBO# (curly brackets open), #CBC# (curly brackets close), #SBO# (square brackets open) and #SBC# (square brackets close) in the template, the placeholders will be replaced by it’s bracket-values in the end after parsing.
- Plugin ok with WP 5.4.2
1.3.8
Compatibility fix: Plugin is now Ok with PHP 7.4
1.3.7
- New Option: If a http-API request fails, you can use the maybe cached JSON. Set the radio-button in the plugins settings: what API-problem should be handled how (either a non valid API-http-response or a non JSON-API-response – or both). By default for backwards-compatibility this is switched off. Recommendation: Switch on the plugins-cacher (e. g. some minutes) and select the radiobutton for “If the API-http-answercode is not 200 OR sends invalid JSON: try to use cached JSON” in the plugins options.
1.3.6
- Bugfix: Add Gutenberg-JS only in the backend (before it was also in the frontend)
1.3.5
- New: Added a Quicktag to the WordPress-Text-Editor to insert the JSONContentImporter-Shortcode incl. an example
1.3.4
- New Plugin-Option: Switch off Gutenberg features (maybe a site builder needs that)
1.3.3
- Bugfix of Bugfix, sorry…
1.3.2
- Bugfixes: detect Gutenberg and WordPress 5.0
1.3.1
- Bugfixes
1.3.0
- Plugin is ok with the Gutenberg Plugin 3.9.0
- Gutenberg-Mode: With an active Gutenberg Plugin you get an easy example for testing and learing how to use the plugin. If you don’t want to use Gutenberg on live-stage: Use it to easy create the shortcode (almost avoid the learning of the shortcode-parameter-syntax)
1.2.20
- Plugin is ok with WordPress 4.9.8
- Plugin is ok with the Gutenberg Plugin 3.6.2
- Plugin is ok with the General Data Protection Regulation (GDPR): The plugin does not collect personal data itself. You may list the plugin in your GDPR-documentation as used software. Maybe the used API uses personal data – then you have to take care of the GDPR.
- Improved debugmode (use debugmode=10 in the shortcode for that)
- Changed the Videolink to a better HowTo-Video
- Added upgradelink to pro plugin in PluginList
1.2.19
- Plugin is ok with WordPress 4.9.1
- Adding “debugmode=10” to the Shortcode parameters will show you info about the API-JSON-retrieve and the used template for converting to HTML.
- Ever since the plugin uses the PHP function “mb_check_encoding” to detect a maybe needed character-conversion. Unfortunately some WordPress/PHP-installations do not have the PHP-optional “Multibyte String”-library required for that. Then the plugin does not work. Now the availablility of “mb_check_encoding” is checked: If it’S not there the conversion-feature is disabled.
- At the Plugin-options you can set a “Bearer”-accesskey for oAuth-Bearer-Authentication. The there defined accesskey-string is sent to the API as “Authorization:Bearer accesskey”. Some APIs just need “Authorization:accesskey”. So “Bearer ” should not sent. To do this add “nobearer ” (with one space at the end) at the beginning of the option-field.
1.2.18
- Plugin is ok with WordPress 4.7.5
- New option: Add Default Useragent for http-request (some APIs need that)
1.2.17
- Plugin is ok with WordPress 4.7
- https instead of http for Plugin-Website
- Remove invalid quotation marks in shortcode-attributes (when copypasting example code this can happen)
1.2.16
- Plugin is ok with WordPress 4.6.1
- Plugin is ok with PHP 7.0
- Cleaner Code
1.2.15
- Plugin is ok with WordPress 4.5.2
- Added features for coming future addons
1.2.14
- Plugin is ok with WordPress 4.5
- Improved description
1.2.13
- Caching-Bug Fixed: WordPress 4.4.2 does not create a “/cache/” folder. If “/cache/” is missing, the plugin creates on. This is relevant for totally new WordPress installations, as older ones should have such a directory.
1.2.12
- Plugin is ok with WordPress 4.4
- minor change: prevent direct calls of plugin
- bug fixed: path of cached files is now set ok
1.2.11
- bugfix: problems with numeric JSON-values and field manipulators like {JSONkey:ifNotEmptyAdd:….}
- beta feature Vers. 0.2: Fixed bug in using oAuth-Bearer-Accesscode for authentification at JSON-Server: Bearer-Code is added to the Request-Header.
1.2.10
- bugfix: caching now works even with very long URLs
- beta feature: On the Optionpage you can set an oAuth-Bearer-Accesscode for authentification at JSON-Server: This Bearer-Code is added to the Request-Header.
1.2.9
- new: “{street:purejsondata}”: Default-display of a datafield is NOT HTML, but HTML-Tags are converted. If you want to use really the pure data from the JSON-Feed, add “:purejsondata”. Try first {street}, then {street:html} and then {street:purejsondata}. In some cases: Take care that “meta http-equiv=content-type…” is set to “utf-8”
1.2.8
- bugfix: handling of JSON-values with $
1.2.7
- WordPress 4.3.1: check – all ok
- bugfix: correct encoding of spaces when using {FIELD:html}
- bugfix: deleting unfilled template-items containing dots
1.2.6
- WordPress 4.3: check – all ok
- added feature: remove unfilled template-placeholders {…}
- introducing “JSON Content Importer PRO”
1.2.5
- WordPress 4.2.3: check
- minor bugfix regarding attribute “ifNotEmptyAddRight”
- new Pluginwebsite: http://json-content-importer.com/
1.2.4
- “&” in JSON-Feed-URLs are replaced by “&”
1.2.3
- added a donated feature: new shortcode-params “oneofthesewordsmustnotbein”, “oneofthesewordsmustnotbeindepth”. This is for excluding JSON-data from display: When one of the “,”-separated keywords at “oneofthesewordsmustnotbein” is found in the textblock, ignore this textblock
1.2.2
- minor bugfix: JSON-Structures like { “$a”: “$b”} can be handled (before: “$” made problems)
1.2.1
- new feature “{street:htmlAndLinefeed2htmlLinefeed}”: Text-Linefeeds of JSON-data are converted to HTML-Linefeeds
- Boolean JSON-Values were ignored before this version. Now the text “true” or “False” is displayed
- Bugfixing Cacher: Timeout-Parameter of cache was not handled right
- Fixed a bug with JSON-Value containing “$”
1.2.0
- new shortcode-parameter: “oneofthesewordsmustbein” and “oneofthesewordsmustbeindepth”
- filter & hook for third party extensions added: hook “json_content_importer_extension” and filter “json_content_importer_result_root”
- Sourcecode: Classes rearranged
- minor bugfix: number of items in subloop/subloop-array was sometimes ignored and all was displayed
- “made in munich” added (see faq)
1.1.2
- Bugfix: tags like “{aa/aa}” are ok (previous: error)
- Display JSON-HTML-Data really as HTML. Default: JSON-HTML-Data is displayed not as HTML but as HTML-Text. New in this version: tag-sytax like “{tag:html}” or “{street:html,ifNotEmptyAddRight:extratext}” allows real HTML-display.
- New parameter in “[jsoncontentimporter]”-shortcode: set http-timeout “urlgettimeout”. default is 5 seconds (ueful if source-website of JSON is slow)
- Logo of plugin: WordPress-Logo inserted
- Update of screenshots
1.1.1
Bugfixes
1.1.0
Completely rewritten template engine for even better JSON-handling:
-
“subloop-array”: key should also be in the closing tag, e.g. “{subloop-array:KEY:10}{some_array_field}{/subloop-array:KEY}”.
The “subloop-array” without KEY in the closing tag is ok if there is only one “subloop-array” in the template. But if there are more than one “subloop-array” in the template insert the KEY in the closing tag!
Then the template engine can identify the correct JSON-data. -
“subloop”: what is above for “subloop-array” is also for “subloop”, e.g. “{subloop:KEY:10}{some_object_field}{/subloop:KEY}”
-
templates like “{subloop-array:AAAA:10}{text}{subloop:AAAA.image:10}{id}{/subloop:AAAA.image}{/subloop-array:AAAA}” are possible:
one is the recursive usage of “subloop-array” and “subloop”.
the other is “{subloop:AAAA.image:10}” where “AAAA.image” is the path to an object. -
JSON-data with multiple use of arrays can be handled by the template engine
1.0.5
- Added Screenshots
- Enhanced “subloop-array”, new processing of pure string/numeric-array data (before: only string/numeric-data in an object)
- Enhanced FAQs: Added Link to Website for better creating shortcode-markups
1.0.4
Bugfixes
1.0.3
Enhanced the template engine for better JSON-handling.
1.0.2
Initial release on WordPress.org. Any comments and feature-requests are welcome: blog@kux.de