As many users asked for more features or reported bugs, updates came along

Version 3.8.2 (March 22 2024):
  • NEW: Integration with Contact Forms 7 – Populate form fields using JSON data pre-loaded from an API. Additionally, submit the form data to another API for processing.
  • IMPROVED JCI PRO Block “Select JCI-Use-Set”: “Additional CSS class(es)” defined in the “Advanced” settings of the JCI free Block are now considered
  • IMPROVED: In the JCI-Options under “Basic Settings”, you can set the PHP timeout if you wish to extend the maximum execution time for a Shortcode. Please note that some hosts may not permit this. In the JCI Options under “Check Install”, it is verified whether this setting is supported by your hosting provider.
  • IMPROVED: Now, when creating Custom Post Pages from JSON via Shortcode, you also have the option to set the “excerpt” field.
  • IMPROVED: The twigfilter json_decode converts a JSON string into an array that can be manipulated using Twig. However, if the JSON string is invalid, json_decode will now provide a proper error message ({“json_decode”:”null”}). Before this version, an invalid JSON string would result in a string output. Starting from this version, both successful and failed conversions will return an array
  • NEW: twig functions wp_jci_pods_relation_add and wp_jci_pods_relation_remove to add and remove relations between CPT managed by Pods
  • Plugin ok with WordPress 6.5-RC
Version 3.8.1 (November 4 2023):
  • IMPROVED: twig-function wp_get_page_properties() now has a node “requestdata” with some $_SERVER-Data like HTTP_REFERER, REQUEST_URI, REMOTE_ADDR, HTTP_USER_AGENT etc.
  • IMPROVED: JCI-PRO-Block now uses POST- instead of GET-API-requests
  • Plugin ok with WordPress 6.4

Version 3.8.0. (August 14 2023):

  • Plugin ok with WordPress 6.3
  • REMOVED, PLEASE CHECK! The Parser you might know from the free JCI Plugin is removed from the PRO version. Use Twig only in the PRO Plugin. If you need help, you’re welcome to open a support ticket!
  • REMOVED, PLEASE CHECK! twig1, twig243, twig3. Still there: twig332, twig332adj, twig351adj. You might have to check your JCI PRO Shortcodes & Templates to upgrade to a newer twig-version. Syntax like {% for g in _context if g.field %} do not work any more, replace this by a for- and a if-syntax.
  • PLEASE CHECK: if you use non UTF8-Data: utf8_decode, utf8_encode is deprecated in PHP 8.2, replaced by mb_convert_encoding and mb_list_encodings
  • NEW: twig function wp_get_taxonomy(PageID, taxonomySlug, debugFlag) to get a list of Taxonomies for a PageID
  • IMPROVED: Ace-Editor (JCI Template): Improved autocomplete
  • IMPROVED: twig function wp_get_page_properties now also lists the categories of the pages (if there are those)
  • IMPROVED JCI PRO Admin area: New Tabs “JCI Bugbount”… Removed Tabs… Rearranged all Tabs, added some…
  • BUGFIX: When uninstalling the Plugin not existing dirs are not tried to deleted
  • BUGFIX: The JCI Block is now stable when inserting a twig syntaxerror into the twig temlate

Version 3.7.12 (June 25 2023):

  • Take care – purge JCI-PRO: The JCI-PRO plugin is very backwards compatible. It comes with several old twig-parsers (all execpt the adjusted Versions 3.3.2 and 3.5.1) and a JCI-parser similar to that of the free JCI plugin. It’s planned to remove all those deprecated stuff at August 1 2023.
  • Improved conversion of XML-Feeds to JSON-Feeds: Now also XML-Nodes with an “:” are converted
  • New twig-function: get_headers(URL) for a header-request on an URL
  • New twig-function: get_attachment_image_src which wraps wp_get_attachment_image_src: Retrieves an image to represent an attachment
  • Improved search for twig-code-snippets with the ace-editor
  • Bugfix infomessages when generating CPT out of JSON: Link to generated page now ok
  • Several Fixes for PHP8 and JS-Libraries, esp. for JCI-Access-Sets
  • Plugin ok with WordPress 6.2.2

Version 3.7.11 (Apr 25 2023):

  • Plugin now ok with WordPress 6.2: Needed change in JCI-Block “Select a JSON-Use-Set” implemented
  • Follow URL-Location: If an API answers with a “3xx response” (e. g. 301 ” Moved Permanently”) the plugin tries to retrieve the JSON from the redirected URL
  • Caching for empty API-answers now works (e. g. API http-Code “204 No Content”): A “artificial” JSON is sent to the twig-template
  • Bugfix: Deleting twig-cache now works
  • Bugfix: sortbyjsonfield should now work like it should

Version 3.7.10 (Mar 19 2023):

  • New twig-functions: With wp_get_files_in_dir(dir) you can read the filesystem of ther server (if permissions allow this), wp_get_memory(FLAG) gives you the memory PHP allocates for this WordPress request, see for more
  • Extending caching: The curloptions are now also part of the caching-identifier. When checking if there is a cached file, also the curloptions are checked if they changed.
  • Bugfix: twig-filter “sortjsonarray” no works as with version 3.7.7 (there was a bug resulting in not sorting some JSON)
  • Remember – purge JCI-PRO: The JCI-PRO plugin is very backwards compatible. It comes with several old twig-parsers (all execpt the adjusted Versions 3.3.2 and 3.5.1) and a JCI-parser similar to that of the free JCI plugin. It’s planned to remove all those deprecated stuff at June 1 2023. The JCI-Options Tab “Check install” displays when your JCI-PRO installation uses a deprecated twig-parser. Check this and switch to “JCI-twig 3.5.1”, please.

Version 3.7.9 (Feb 16, 2023), see in detail here (there is no 3.7.8):

  • Purge JCI-PRO: The JCI-PRO plugin is very backwards compatible. It comes with several old twig-parsers (all execpt the adjusted Versions 3.3.2 and 3.5.1) and a JCI-parser similar to that of the free JCI plugin. It’s planned to remove all those deprecated stuff at June 1 2023. The JCI-Options Tab “Check install” displays when your JCI-PRO installation uses a deprecated twig-parser. Check this and switch to “JCI-twig 3.5.1”, please.
  • new twig-parser: Added the JCI optimized twig-version 3.5.1, see JCI-Template “JCI-twig 3.5.1”. Check to switch to this parser.
  • default parser now “JCI-twig 3.5.1” and not the JCI-“free”-parser (which should not be used with the JCI-PRO plugin). This is relevant when using the shortcode [jsoncontentimporterpro] without parser-attribute (use the JCI-Template instead, please).
  • Plugin fixes for PHP 8.1 (in 2022 PHP 7.X reached his end of lifetime – upgrade to PHP 8.X)
  • Plugin ok with wordpress 6.1.1
  • Minor changes in the licencing software (Way1 gives an Error if Plugin-Licence is not active)
  • Minor Bugfixes

Version 3.7.7 (Nov 15, 2022), see in detail here:

  • Another minor change in the licencing software (sorry about that)

Version 3.7.6 (Nov 14, 2022), see in detail here:

  • Plugin ok with wordpress 6.1
  • Minor changes in the licencing software

Version 3.7.5 (Oct 25, 2022), see in detail here:

  • Plugin ok with wordpress 6.0.3
  • Updated Licencing-Software
  • Update JavaScript-Libraries jQuery 3.6.1, jsTree 3.3.11 (JCI can load these by Tab “Extra” in Option-Tabs).
  • Added JavaScript-Libraries for Leaflet-Maps (JCI can load these by Tab “Extra” in Option-Tabs).
  • Improved twig-function wp_insert_custom_field_keyvalue(pageid, key, value, debugflag): value now can be a array (needed for ACF-Galleries).
  • Improved twig-function jci_woo_calc_auth, which is used for authenticate at the Woocommerce-Rest-API: Now also URLs with GET-Parameters (e. g. “…?category=1”) can be used to ask Woocommerce.
  • JCI-Template: Executing a Shortcode in the Curloptions can add some unwanted wpautop-Tags (“<p>…</p>”). Those were now removed automatically.
  • Bugfix: If the twig-template is empty, an algorithm should create a twig-template. Now loading the library for that works and a fatal error is fixed.

Version 3.7.3 (Sept 20, 2022), see in detail here:

  • Plugin ok with wordpress 6.0.2
  • “Way 2: Template Manager”: Via “Screen options”you can set the number of JCI-Templates per page, plus: You can sort, search and do bulk options on JCI-Templates.
  • Caching: Handling of Webservers with set “open_basedir” PHP value. On those servers the Path to the Directory where the cached files are stored must be beyond the “open_basedir”-value. In case this is displayed in the JCI-Plugin-Settings for the Cache.
  • More WPML-Plugin Support for mulitlanguage sites: twig-extensions jci_wpml_element_language_details gives info about the WPML-settings of a page. jci_wpml_set_element_language_details can set those WPML-settings
  • twig-extension wp_set_post_categories sets categories for a post.

Version 3.7.2 (June 7, 2022), see in detail here:

  • Plugin ok with wordpress 6.0
  • New: twig-filter base64decode (= PHP base64_decode) to decode data encoded with MIME base64
  • WPML-Plugin Support 1: twig-function wp_get_page_properties returns wpml-language of a page
  • WPML-Plugin Support 2: If a multilanguage WP-Website is realized with the WPML-Plugin and the languages are in subdirectories of a multisite-WP only ONE JCI-licence is needed (usually each domain incl. path needs a licence)
  • Several minor Bugfixes: retrieving data (curlput, curlpost), caching data (set cacher-path, delete cached files, display size of cached files), twig-functions for direct database-access (bug when a non-default-db-prefixname is used), several PHP8 fixes

Version 3.7.0 (April 2, 2022), see in detail here:

  • New:
  • Plugin ok with wordpress 5.9.2
  • New: Added “Way1” – Get JSON by “JSON-Access-Set”, then use JSON with “JSON-Use-set” (Way 2 is the “JCI-Template-Way”)
  • New: Gutenberg-Block “Select a JSON Use Set”
  • New: Added Ace-Editor with code-highlightning – new Options-Tab “Admin-Settings” to switch Ace on / off
  • New: Shortcodeparamater “jsonuseset” for using a “JSON-Use-set” in a JCI-Shortcode
  • Twig – Added new functions “wp_set_featured_image”, “wp_get_featured_image”, “wp_new_custom_post”, “wp_get_attachment_image_url”, “wp_update_custom_post”, “wp_delete_custom_post”, “wp_get_cp_by_cpf_keyvalue”, “wp_mediastore”, “wp_mediafilename”, “wp_medialist”
  • Twig – Added new filter “stripslashes”, “urldecode”, “preg_match_all”, “preg_quote”
  • Twig – Improved functions “wp_get_page_properties”: Get Userdata (if logged in: get_current_user_id, get_userdata) and page data (get_post_meta)
  • Twig – Improved functions “wp_get_cp_by_cpf_keyvalue”: If PostType not set search everywhere
  • Twig – Bugfix filter “html_entity_decode”: Flag-Bitmask now working like PHP “html_entity_decode”
  • If API does not send data: Plugin uses {“nojsonvalue”: “emptyapianswer”} to handle those situations
  • Bugfix curl-post request: when using “payload”
  • Bugfix “dummyrequest”: If used not on a WordPress-Page but in the admin-backend
  • Bugfix converting XML- or CSV-Data to JSON in nested JCI-Shortcodes
  • Bugfix Database-Update from very old JCI-Pro-Versions
  • Update Licencing of thr Plugin: Updated Licencing-Software, improved display of licence status, when using WPML-Languages: not every languaged needs a licence
  • Minor Bugfixes like link to twig-Website

Version 3.6.3 (June 6, 2021), see in detail here:

  • Plugin ok with wordpress 5.7.2
  • Testing with PHP8, added twig Version 3.3.2 (use it if you use PHP8!)
  • “twigging WordPress”: New twig-filter and -functions for developing Scripts
    • database access via twig: create, insert, select, update, delete
    • create wordpress-Users out of JSON
    • set and get Cookies
    • use the Woocommerce-API
    • forward to an URL
  • Upload files via HTML-Form, store it in WordPress and send it to an API: CURLOPT_UPLOAD_POSTFIELDS and Shortcode parameter “showapiresponse=1”
  • minor Bugfixes (e. g. twig get_file-Function)
  • new initial JCI-Template with twig and JSON

Version 3.6.2 (May 2 2021), see in detail here:

  • New twig-filter and -functions:
    • create a new custom post: {% set newpageid = wp_create_new_custom_post(slug_post_type, titel, name, content, publishdate (e. g. JSON-field), postStatusUsed (e. g. publish), authorid (if empty current user id), debug_boolean (default: FALSE) %} creates a new Custom Post
    • insert custom field values: {% set cpfid = wp_insert_custom_field_keyvalue(pageid, key, value, debug_boolean) %} inserts a key-value-pair in a custom post
    • get custom field value: {% set cpf_value = wp_get_custom_field_value(pageid, key, debug_boolean) %} gives the custom field value of a page with a defined key
    • get all custom posts by custom post field keys and values: {% set cpids = wp_get_cp_by_cpf_keyvalue(slug_post_type, key, value, debug_boolean) %} gives an array with all those custom posts
    • insert a taxonomy-value of a Taxonomy: {% set cleartax = wp_insert_taxonomy(pageid, taxonomySlug, taxonomyValue, debug) %}
    • delete all taxonomy-entries of a Taxonomy: {% set cleartax = wp_clear_taxonomy(taxonomySlug) %}
    • get wordpress page properties: {% set pageprop = wp_get_page_properties(debug_boolean) %} gives an array of the pageproperties)
    • get data of uploaded files: {% set fileinfos = get_data_of_uploaded_file(filename given at upload) %} gives $_FILES of upload
    • load file from server-directory: {% set fileinfos = get_file(filename) %}
  • improved handling of XML and CSV (e. g. use #TAB# for Tabulator-delimiter): convert to JSON and use it
  • improved handling of http-requests incl. errorhandling
  • generating custom posts: added “postauthorid” to set the author of a generated custom post
  • Plugin ok with wordpress 5.7.1

Version 3.6.1 (March 12 2021), see in detail here:

  • new shortcode-parameter “orderofshortcodeeval”: if set, it overrides the settings of “Usage of Shortcodes (JCI or other) in the JCI-twig-Template” at the tab “Shortcode-Settings”. Importaint when having other shortcodes in the twig-Template. If set to 1 (default) first the twig-code in the JSONContentImporter-Shortcode is executed and after that remaining Shortcodes. If set to 2, shortcodes are executed and then twig. any other value: No shortcode-execution, which is ok: You can execute shortcodes in twig by “doshortcode”.
  • new features managing JCI-Templates: new button “copy” for easy duplicating templates, and: you must confirm deleting of a template, Shortcode is displayed on Templatepage
  • JCI-Plugin licencing: Show URL used for licencing
  • additionals twig-function “json_decode_4twig” which is the same as “json_decode(TRUE)”. use it if json_decode does not work
  • Fixed Bug for Parameter “curloptions” (Template / Shortcode): when using more than one “CURLOPT_…” this caused problems
  • Fixed Bug when using addpostdata2json=y
  • Plugin ok with wordpress 5.7

Version 3.6 (February 16 2021), see in detail here:

Version 3.5.9 (January 10 2021), see in detail here:

  • Set PHP-Timeout: If your Pages run into PHP-Timeouts (esp. when generating Custom Posts) you can increase the PHP-timeout at the Plugins-Options, Tab “Shortcode-Settings”.
  • Improved generating of Custom Posts: Added “postpublishtime” to set date and time of generated CP out of JSON, improved “mediastore”-option to store images etc. locally when generating CP
  • New Shortcode Parameter: addcpf2json=y adds Custom Posts Fields to JSON for working with itin the Template
  • Enhanced options to put together URL for API-request: “” in the URL is replace with “FIELD” from get_post like PageID etc. (add addpostdata2json=y in the shortcode to see available data)
  • “dummyrequest”-URL for API-request: Try “dummyrequest” as URL in the JCI-template to display pagedata (“get_post”) and Custom Post Fields
  • Plugin ok with wordpress 5.6

Version 3.5.8 (September 6 2020), see in detail here:

  • Plugin-Options Extras: Load “jquery-3.5.1.min.js” available
  • Plugin-Options Check Install: Check if PHP allows retieval of URLs (allow_url_fopen check active) – otherwise requests will fail
  • Handling of GET-/POST-input as arrays (e. g. multiple-selects in html-forms)
  • Some minor bugfixes: When other plugins also provide the twig-software
  • Plugin ok with wordpress 5.5.1

Version 3.5.7 (July 27 2020), see in detail here:

  • Importaint when generating Custom Post with the Plugin, esp. when using another, nested, jsoncontentimporter-Shortcode in the templates: If this is up and running there should be nothing to do. If you start new: There is a new switch at the Plugins-Options at tab “Shortcode-Settings” called “Separate parent- and child-settings”. If this is selected: the nested jsoncontentimporter-Shortcode are separated way better from other jsoncontentimporter-Shortcodes than before. This is useful e. g. for oAuth-Authorization.

Version 3.5.6 (July 17 2020), see in detail here:

  • useful for merging JSON from different URLs: new twig-extensions: doshortcode and json_decode: execute shortcode directly and use response. convert string into array by jsondecode
  • experimental twig-extension “mediastore”: when generating Custom Posts you can have {{url_in_jsonfield_for_media| mediastore}}. Then the media (jpg, pdf, docx…) from url_in_jsonfield_for_media is loaded, stored in the local medai library and the link to the local media is used on the generated page.
  • Bugfix when tryinbg to use different twig-versions in nested shortcodes. “root”-twig-version rules
  • Support for FacetWP-Plugin: If FacetWP is active and Custom Posts are created these Posts are indexed automatically for FacetWP usage
  • Use placeholders for “{}[]” in the twig-template to avoid syntax trouble: #CBO# = {, #CBC# = }, #BRO# = [, #BRC# = ]
  • The Plugin comes with several JS- and CSS-libs you can load via the Plugins options for defined pages (Tab “Extra”): jQuery-UI, jQuery mobile, foundation CSS-grid. These libs you can use in the twig-template for applications and design.
  • Some minor bugfixes

Version 3.5.5 (May 26 2020), see in detail here:

  • Bugfix creating Custom Post Types with Shortcode at the GetURLCron-Plugin

Version 3.5.4 (May 25 2020), see in detail here:

  • twig Version 3 available: Besides twig 1 and twig 2 you now can select twig 3 as template engine – which is recommended
  • More options when generating Custom Post Types: Add “loopstart” and “loopend” at createoptions for selection the items from “loopstart” to “loopstart+loopend”
  • Using twig in a Shortcode: Use #LT# instead of < and #GT# instead of > – otherwise twig will crash
  • Bugfixes at plugin-licencing-workflow

Version 3.5.3 (April 26 2020), see in detail here:

  • Bugfix, importaint if you set the request-method to CURL_POST in a JCI-template: This probably didn’t work till now, it might was always a GET-request. In case of problems of a running system: Switch from CURL_POST to CURL_GET in the template.
  • Plugin ok with PHP 7.4
  • Plugin ok with WordPress 5.4
  • When using curloptions in the JCI-template: New Placeholders #param1# and #param2# for passing Data from the Shortcode to the Curl-API-request

Version 3.5.2 (March 29 2020), see in detail here:

  • Improved Error handling: If an API is not available maybe cached JSON can be used (must be switched on: see Plugins Options, Tab Cache, for activating it together with the caching to have locally stored JSON)
  • Besides JSON and XML you can now use CSV-Feeds as Datasources (CSV is transformed into JSON)
  • Improves Plugins Options: Rearrangement of the Tabs and a new Tab “Initial help”
  • Generate Custom Posts: New magic word for the Loopkey: Use “#singlepage#” if you want to create only one Custom Post out of the JSON
  • Some bugfixes: E. g. HTML-Code ok for Error message in the Plugins Options, Tab Shortcode-Settings

Version 3.5.1 (March 8 2020), see in detail here:

  • New twig-extension: sortbyarray(SORTTYPE) with SORTTYPE asort, arsort, rsort, ksort, krsort (like PHP)
  • Calc values for Custom Post Fields when generating Custom Posts: use twig-code in JSON-part of “matches” for CPF. Mask “?” by “#QM#”, “{” by “#CBO#” and “}” by “#CBC#” in the shortcode
  • Generate Custom Posts: Bugfix when deleting old Custom Posts
  • Link “View details” at the Plugin-List for this Plugin

Version 3.5.0 (January 26 2020), see in detail here (most changes are affecting generating Custom Post Types):

  • Generate Custom Posts with Custom Post Fields and Taxonomies out of Custom Post Types created by Plugins Toolset, Pods or AdvancedCustomFields
  • New Twig-extensions for working on JSON-Data: dump, md5, preg_replace, removenonprintable, htmlentities, htmlspecialchars_decode, html_entity_decode
  • New: Sort JSON-data by date
  • Define path of Cachefiles
  • XML to JSON conversion ok for Soap-XML-Syntax
  • New Shortcode-Parameter: secret (Passwort for requests), encodingofsource (if JSON is not UTF8)
  • API-http-Request extended by PUT-requests, relative URLs and Parameter ##param1## and ##param2## in URL for flexible URLs
  • Backend: Plugin-Tab “Check Installaton” now with check on CURL-availability
  • Add-Plugin-Template: Improved interface and autoname for Templates

Version 3.4.13 (June 10 2019), see detail here (most changes are affecting generating Custom Post Types):

  • Customfields when generating Custom Post Types:
    When defining Customfields in the shortcode with the parameter “createoptions” and it’s JSON use this: “customfields”: #BRO# {“extracustomfield1″:”extravalue1”}, {“1#SEP#extracustomfield2″:”extravalue2#SQM#SingleQuote#SQM#”}, {“2#SEP#extracustomfield2″:”extravalue3”}#BRC#
    #SQM# is the mask for single quotes, use “integer#SEP#” if you want to have idential keys in several Customfields (here: “extracustomfield2” is the key)
  • Date of generated Custom Post Types:
    When defining Customfields in the shortcode with the parameter “createoptions” use “postdateoffset”: “VALUE” to set the time and date of the generated Custom Post Fields.
    If not set the current PHP-Servertime is used.
    “VALUE” can be numeric: Then this number is subtracted from the current Servertime, e.g. one hour is 3600 seconds or 3600000 miliseconds.
    “VALUE” can be “wptimezone”: Then the in the WordPress-installation defined timezone is used
    “VALUE” can be a valid timezonestring
  • Delete of existing Custom Post Types when calling the generating Page (e.g. manually or by cronjob)
    This can be configured by the parameter “deleteold” and the values for the “key” of each generated CPT.
    You have these options:
    If “deleteold”:”no” then no previous CPT is deleted, the new CPT are just added.
    If “deleteold”:”yes” then all CPT with the key defined for these CPT are deleted (twig-code in the key is not executed!)
    If “deleteold”:”some” the twig-code in the key is executed for each CPT. Those CPT are deleted when the result of the twig-key matches the key of the CPT.
    The twig-key is defined at the JCIpro-Plugin-Options at tab “Custom Post Types” settings at …;key={% if VALUE_FROM_JSON>0 %}date{{ANOTHER_VALUE_FROM_JSON}}{% endif %}…
  • Bugfix when generating Custom Post Types: Handling of special chars and selecting Data out of JSON
  • Bugfix Debugmode-Messages: cleaned up when 2 or more JCI-Shortcodes are on one page
  • New Shortcode-Parameter: If “forcetemplate=1” then all settings from the JCI-Template are used (otherwise a parameter set in the Shortcode overwrites it´s template-parameter)

Version 3.4.12 (February 22 2019), see in detail here:

  • bugfix 1: Now you can use HTML-Entities in the Template-Code (before those were converted in the textarea), e. g. “>”
  • bugfix 2: Better Infomessage before the 1st Licence-Check is done
  • bugfix 3: Creating CustomPostTypes: If “deleteold” is not “yes”, both old and new CPT are available. This previously didn’t work as it should.
  • bugfix 4: Using Shortcode-Parameter “maskspecialcharsinjson=no” now really works as it should (importaint when special chars are in the JSON)
  • rearranged code for better handling (twig, cache, debug-messages)
  • plugin ok with wp 5.1

Version 3.4.11 (January 14 2019), see in detail here:

  • plugin suggests you twig-templatecode: If there is no twig-template: the plugin looks into the JSON and suggests a template displaying the whole data
  • better creating custom-post-types: when creating custom-post-types you can use twig-code in the title, slug, custom fields and in the template. with the placeholder #SQM# you can add ‘ in custom-field-values when creating custom-post-types. E. g. this is needed when you want to format data there (like date or number)
  • better caching-handling: via the plugin-option “Settings” you now can switch of the twigcacher (which was previous always on) and clear the cache completely (see “Check Installation”, previous the twigcache wasn’t cleared)
  • bugfix 1: converting XML now works in more situations
  • bugfix 2: Check JCI-template-db if flag is not set. If ok set flag. Then an unneded error warning vanishs.
  • bugfix 3: when using displayapireturn=1 (wrap api-response in JSON if API does not give JSON) and the API gives 0 this failed before. E. g. this is needed if an API gives pure imagedata.
  • rearranged code for better handling (twig, cache, debug-messages)
  • plugin ok with wp 5.0.3

Version 3.4.10 (December 4 2018), see in detail here:

  • bugfix 1: shortcode in widget-text of sidebar only if PHP < 7.2
  • bugfix 2: Improved fixing invalid JSON (shortcode parameter trytohealjson=yes together with parser=twig) – use this when an API delivers invalid JSON

Version 3.4.9 (August 31 2018), see in detail here:

  • pro plugin is ok with wordpress 3.4.9
  • pro plugin is ok with gutenberg plugin 3.6.2
  • added Information on General Data Protection Regulation (GDPR): see Plugin-Options Tab “GDPR”
  • added links to HowTo-Videos:
  • creating custom post types: uniquekey can be placed in cpt-parameters as “key” – instead of custom fiel value (“jci_uniquekey_createpost”)
  • new shortcode-parameter displayapireturn: put api-return as string into JSON and access via {{data}} (e.g. if api delivers raw encoded image-data). displayapireturn=1 (pass directly), displayapireturn=2 (pass base64_encoded), displayapireturn=4 (remove linefeeds)
  • if shortcode-parameter addpostdata2json=y then the array “jcipageparam” is added to the API-JSON to get access to the WP_Post OBJECT (get_post) like ID, post_date…
  • improved debugmode

Version 3.4.8 (April 29 2018), see in detail here:

  • Admin error message, if database-update from version 3.4.7 on requires a deactivation-then-activation of the plugin.
  • Code for using CURLOPTIONS (esp. HEADER and POSTFIELDS) completely rewritten: If you use CURL-POST/GET-API-Requests and CURLOPTIONS check if all is ok, please.
  • New Shortcode-Parameter: maskspecialcharsinjson=no switches off some usually very good handling of JSON (rare JSON needs that)
  • New Shortcode-Parameter: httpstatuscodemustbe200=no accepts that some APIs deliver valid and usable JSON and and http-error (ok is 200). Without that the plugins says: No http-ok from the API, hence ignore JSON.
  • Several Bugfixes: Templatemanager, sorting JSON with twig-extension, use of CURL-Options

Version 3.4.7 (Feb 25 2018), see in detail here:

  • Building API-URL: twig-code possible in “url”. Pass GET-/POST-values to URL. The new Shortcode-Parameter “urlparam4twig” defines, what Input-Names are passed to the Plugin.
  • Improved Template-Manager: Put most of the Shortcode-Parameters into the Template. So you can call the API by “jsoncontentimporterpro id=NO” avoiding a long list of Shortcode-Parameters
  • Support of jsonrpc-feeds
  • If JSON contains special characters like a dash, dollar etc. those are masked in JSON. Hence the twig-template must use these masks like “_symbol_slash_” or “_symbol_at_”
  • new twig-extension: “converthex23ascii” available, e.g. needed for some JSON-data coming along as hex-data.
  • Minor bugfixes

Version 3.4.6 (Dec 30 2017), see in detail here:

  • building API-URL: twig-code possible in “urladdparam” and “curloptions” – e.g. set datestamp in URL
  • creating custom posts out of JSON: twig-code possible in “customfields” and “title” (both part of the JSON needed when creating)
  • new twig-extension: “base64encode” available, e.g. needed for some API-authentication (then to be used with twig-code in curloptions)
  • Minor bugfixes

Version 3.4.5 (Dec 08 2017):

  • New Shortcode-Parameter: “curloptions” and “urladdparam” to improve building of the JSON-API-URL and it’s http-settings. E.g. using 3rd party shortcodes in the URL.
  • Handling of GET-parameters given by form-checkboxes
  • Have Custom Fields-Values available in the JSON used for the twig-templates
  • Plugin ok with WordPress 4.9.1

Version 3.4.4 (Nov 12 2017):

  • New Shortcode-Parameter: If “removeampfromurl=yes” is in the Shortcode, “&amp;” in the URL is replaced by “&”. This is needed when using the Plugin together with Software like Visual Composer which changes code in the backend by itself.
  • Plugin-Options: Tab “Shortcode-Values” removed. Not needed anymore.
  • Bugfix when using Customfield-Parameters in the API-URL

Version 3.4.3 (Oct 29 2017): Use of special GET-parameters

  • If you want to pass a parameter via a WordPress-URL to a API-url you usually add “?key=value” to the WordPress-URL. This fails for some special keys like “p” etc., as these are used by WordPress itself. To avoid this you can add “_nowpquery” to the key. Hence when using “p_nowpquery” the value is passed to the plugin, where “_nowpquery” is removed and used for the API-request.

Version 3.4.2 (Oct 29 2017): CURL-options as you like, improved sorting & creation of custom types

  • Extended CURL-settings: Add CURL-Options as you like
  • Improved sorting: traverse JSON by “.”-separated path
  • Creating Custom Types / pages: Use ptredirect, not petredirect!
  • Creating Custom Types / pages: More JSON-formats supported

Version 3.4.0 (Sept 21 2017): Create Pages,

  • New Shortcode-Parameters “mode” and “createoptions” for creating WordPress-Pages out of JSON.
  • New Shortcode-Parameter “convertjsonnumbers2strings”: If set to “yes” any number in the JSON-Feed is converted to a string. This is importaint for very big or small numbers, as those are otherwise displayed in scientific-notation like 1.4e-20
  • Added 4 twig-extensions: convert2html, removespecialcharsinurl, stringshorter, formatnumber
  • Better Handling of “almost JSON”-Feeds (wrap into Array if needed)
  • Better Handling of 2D-GET-Parameterarrays
  • Caching of POST-requests with Payload or Body-Values improved
  • Debug- and Error-Messaging improved
  • Update of Licencing-Software

Version 3.3.9 (Aug 5 2017): Bugfix Shortcode-Parameter “cachetime”

  • If you use the Shortcode-Parameter “Cachetime” you should update to this version. With this you can cache single feeds by defining the Cachetime by a number of seconds . Previous plugin-versions cached forever, unfortunately.

Version 3.3.8 (Jun 18 2017): CURL-POST and Twig 2.4.3 possible

  • New:
    Shortcode “method=curlpost” let’s you use another method of http-connect: Now you can do POST via the WordPress-build-in-Post (default), raw-PHP-post (“method=rawpost”) and now new via Curl-POST (same with GET via WordPress-build-in, raw-PHP-get and Curl-Get). Adding payload to the POST is done as with the other POST-requests via “postpayload” or “postbody”, depending what the API requires.
  • New:
    Shortcode “parser=twig243” (instead of “parser=twig” which invokes twig 1.X) let’s you use twig Version 2.4.3, which is the latest twig-version. The difference between twig 1.X and 2.4.3 is not that much. If you’re ok with twig 1.X you do not have to switch to 2.4.3.
  • Plugin is Ok with WordPress 4.8
  • Minor Bugfixes:
    If the “settings-pages” of the plugin-options was never saved, the default settings aren’t in action. So templates with nested shortcodes did work only after saving this pages once.

Version 3.3.7 (Apr 1 2017): New Shortcode-Parameter urlencodepostpayload, Bugfixes

  • New Shortcode-Parameter urlencodepostpayload:
    When using POST for API-requests the payload (=parameters) might or not might be urlencoded. Default is encoding. By adding “urlencodepostpayload=no” to the shortcode no encoding is done. Some APIs require this.
  • Bugfixes:
    “pathparam” was required to use “fileext” when building dynamic API-URLs. Now “fileext” can be used without “pathparam”.
  • Bugfixes:
    Extended debug-messages when using debugmode in shortcode. Fixing notice-errors when sorting JSON.

Version 3.3.6 (Mar 20 2017): Debug per page, Bugfixes

  • New Shortcode-Parameter:
    Prior to version 3.3.6 there was either debug=on or off for the whole page. Now you can set the debugmode at every shortcode by “debugmode=NUMBER”. NUMBER=2 shows some debug infos, NUMBER=10 all available debug infos.
  • Bugfixes:
    When using method=curlget with Pluginoption “Accept-Header” a fatal error resulted. And: Under some circumstances not set parameters caused WordPress-Notice-Errors.

Version 3.3.5 (Mar 3 2017): Curl, HTTP-Header, JSON, Cache

  • Connect API via curl:
    This Plugin tries to get JSON-data from an URL / API. The default for doing this is GET or POST done by the functions WordPress provides. Or by the basic PHP-functions. With this a 5th way comes into the game: curl. With curl you can do several authentication-ways for APIs and much more.
  • Try to heal JSON:
    Some APIs / URLs deliver invalid JSON (invalid in the sense PHP-libraries can’t handle it). This is due to invalid Characters before or after the first square or curled brackets. When setting “trytohealjson=yes” inside “jsoncontentimporter” those Characters are emoved from the JSON before used in the Plugin.
  • Caching via Shortcode:
    Before Version 3.3.5 all Cache-Settings were in the Plugin-Options and valid for all URLs. Now you can add “cachetime=120” in the “jsoncontentimporter” to set the cachetime for this Shortcode to 120 seconds – regardless of the settings in the plugin-option, even when caching is switched of there.
  • [jsoncontentimporterpro] inside a “jsoncontentimporterpro”
    Before Version 3.3.5 is was prohibited to use “jsoncontentimporterpro” inside a “jsoncontentimporterpro” to avoid infinite loops right from the start. As some users need this, this is now possible.

Version 3.3.4 (Jan 29 2017): XML-APIs, Bugfixies

  • Sometimes APIs deliver data in XML and not in JSON. If so add “inputtype=xml” as Shortcode-Attribute. Then the Plugin tries to convert XML into JSON: Switch on the full debugmode and you’ll see what JSON the XML-data is. Add a template for that JSON…
  • Fixing of some bugs: In WordPress-Debugmode some Notice-Messages occur.

Version 3.3.3 (Jan 28 2017): New features

  • To display Google-Drive-Spreadsheets in WordPress requires one new feature: The Google-Drive-Spreadsheet-JSON comes with lots of “$” in the JSON. twig does not like that as “$” ist a key-char for twig/PHP. So the easy solution is to replace all “$” in the JSON by “_symbol_dollar_”. Hence in the twig-Code also “_symbol_dollar_” has to be used.
  • You can pass GET- (and POST-) variables via WordPress to the Plugin and then to the API to do things like search. Yet one plugin-user wanted to use an GET-Array (e.g. “http://…?…&filter[postcode]=abc”): This updates adds the handling of this.

Version 3.3.2 (Jan 20 2017):

  • twig-extension “dateformat” extended: Before only unix-timestamp-data could be used with that. Now common date- and times-formats in the JSON-data can be displayed depending on the timezone and language

Version 3.3.1 (Jan 14 2017):

  • Convert JSON to another feed, XML, JSON whatever: This can be done by defining a twig-template and display the result by adding “?show=oc” or “&show=oc”.
  • twig-extension “dateformat”: Now date and times can be displayed depending on the timezone and language (not in twig-default possible, but with this extension).
  • New shortcode “urlgetaddrandom”: If set to “yes” the plugin adds random number to every GET-URL-request. This is to change the JSON-URL and for busting a API cache.
  • Plugin ok with WordPress 4.7.1

Version 3.3.0 (Dec 18 2016):

  • Sort JSON with Twig-templateengine-extension sortbyjsonfield: Rearrange the JSON you get from the API by this.
  • “raw”-retrieve API/JSON: Use direct http-GET/POST instead of WordPress-GET/POST. Some APIs don’t want the WordPress-GET/POST as some WordPress-Data is added by WordPress in the header.
  • If all licences are in use somewhere else: Show this – in earlier versions you can’t see that the plugin-activation fails because of this.
  • Improved switching off of wpautop: Try this if you get unwanted linefeeds in your output.
  • Usage if Twig-Code in the WordPress-editor improved: Before Twig-Syntax-quotationmarks are converted to their HTML-Code- this is corrupting the Twig-code and leads to an error.

Version 3.2.2 (Oct 29 2016):

  • JSON-Feeds are pairs of keys and values. If the key in an JSON-Feed uses @ or ! the twig-template engine can’t handle this. This update makes this working:
    Use “_symbol_at_” or “_symbol_exclamationmark_” in the twig-template for the @ or ! character.
  • When copypasting example-code for the plugin, often wrong / invalid quotation marks are inserted. Result: Invalid shortcode attribute-values like url. This update filters removes invalid quotation marks at the beginning and end of an attribute-value.

Version 3.2.1 (Sept 20 2016):

  • Bugfix using the JCI-widget.
    You can insert JSON-data into the widget-sidebar in two ways.
    One is using the JCI-widget (a bug there is fixed by this update) or via Text-widget and the usual shortcode as used on pages.

Version 3.2.0 (Sept 18 2016):

Version 3.1.2 (July 22 2016):

Version 3.1.1 (July 2 10 2016):

  • Bug fix at urlparam-usage fixed (only one urlparam was possible due to bug, now as many as needed are possible)

Version 3.1 (June 10 2016):

  • Load JSON-feeds from server-filesystem (before: only via http)
  • Compatibility to other Plugins like “Contact Form 7”: set order of eval Shortcodes in Pluginoptions, more: fill Contact Form 7 Form withJSON-data
  • Header-Authorisation: Insert “Basic TOKEN” for sending a TOKEN to an API
  • Improved Debugging

Version 3.0.4 (May 18 2016):

  • bug fixed

Version 3.0.3 (May 18 2016):

  • If you want to use a searchform and asking the answer from a JSON-API in the background here’s the way: create a searchform in a twig-template followed by the JSON-data. Use {urlparam.”name of variable to be searched”} to insert the search-text in the form
  • Plugin is ok with WordPress 4.5.2
  • some php-installations do not have the PHP-function mb_check_encoding: then a alternative funtions comes into the game

Version 3.0.2 (April 25 2016):

  • Bugfixes for errorhandling: defect JSON-feeds cause display of user-errormessage (defined in options)
  • Improved debug mode: switching from text- to visual-mode in the wordpress-editor might destroy your twig template.
    Advice: Use the template-manager whenever possible, avoid encapsulating the template at the shortcode directl
  • POST-requests: add method=”post” as shortcode-parameter. Then the JSON-feed is retrieved via POST (instead of GET).
  • handling of shortcode-parameter “fileext”: If fileext starts with an “?” the value is added to the url as parameter, not as file-extension.
    E.g. define fileext=”?apikey=007″ and you can pass such data like api-keys to the JSON-feed.

Version 3.0.1 (March 23 2016):

  • Bugfixes for widgets and twig handling
  • Better check of twig-template: Display errors in debug mode
  • Update: If you use Version 3.0.0, update please.
  • Update: If Version 2.0.17 is working, this update is not a must. Nevertheless you should update at some time 😉
  • In very rare cases:
    – If the plugin is first seems activated, then is deactivated with an error: Just reactivated the plugin and all should be good.
    – If you get an error “can’t install update” read here (deletes some may be ramining files and folders from version 3.0.0).

Version 3.0.0 (March 6 2016):

  • Lot’s of fixes and improvements like empty cachefolder, debugmode, templatenames
  • Twig-templateengine possible: Earlier versions used a proprietary templateengine created only for this plugin. From Version 3.0.0 on you can use the famous Twig-templateengine
  • Update: If Version 2.0.17 is working, this update is not a must. Nevertheless you should update at some time 😉

Version 2.0.17 (Feb 26 2016):

  • Set header of JSON-http-API-request: Added two inputfields at plugin-options for “Accept” (e.g. “application/json”) and User-Agent.

Version 2.0.16 (Jan 24 2016):

  • Now the errorcode of the JSON-feedserver is checked.
    The problem before was: If the JSON-feedserver responds with an error (404, 500 etc.) this code was taken as JSON. Most of the time is is no JSON and the display failed. If caching was on, the failure was cached and the service was out of order.
    Now: The plugin checks the errorcode of the JSON-feedserver. If there is a 4xx or 5xx error the plugin searches for a valid cachefile to use this instead of the bad serverresponse.
  • Path of cached files fixed, importaint if you use the caching-feature of this plugin: The old version stored the cached JSON-feed at the wrong place. This is fixed with this version.
  • minor improvments for security- and compatibility-reasons

Version 2.0.15 (Dec 6 2015):

  • new template-syntax for parsing “unnamed arrays”:
    Prior to 2.0.15 the plugin was unflexible in parsing JSON like {“images”: [“IMG1″,”IMG2″,”IMG3”]}.
    Now the template-syntax “{images.jcix:left##right##number##}” shows the items 1…number (if number=-1: all) of the array and adds “left” and “right” before and after the JSON-value.
  • bugfixing and improving of “{key:ifNotEmptyAddLeftRight:…}”: Now all chars can be used there. And the delimiter (see below) is changeable.
  • Cleanup of template: If some items of the template aren’t filled “{..}” is remove at the end of parsing. If you want to keep an “{” or “}” in the output, mask it in the template like “/{“
  • new plugin-option “Delimiter”:
    JSON-value manipulators like “ifNotEmptyAddLeftRight” or the “jcix-syntax for unnamed arrays” require an delimiter (e.g. {KEY:ifNotEmptyAddLeftRight:left##right##no##})
    If another delimiter instead of “##” should be used (if “##” is part of left or right…), set another delimiter in the plugin-options and use it in the template.

Version 2.0.14 (Nov 22 2015):

  • some Bugfixes:
    – Caching: Problems with very long URLs fixed with md5
    – ifNotEmptyAddLeftRight: Fixed a problem when JSON-Value is numeric
    – Improved removing of unused {…} fields if JSON-value is empty (e.g. also JSON-Values containing “#”…)
  • new feature:
    – new shortcode “loopwithoutsubloop”: If set to “y” by “loopwithoutsubloop=y” the JSON parser loops arrays without a subloop/subloop-array. This helps with some JSON-feeds.
    – Set oauth-Bearer-Code in Plugin options: Value is passed to JSON-Feed (some APIs need that)
    – Template: If you want to have “{” or “}” in the output code, mask them with “/”: “/{” or “/}”

Version 2.0.13 (thank you Rod):

  • FIX: Bug in regular expression regarding “dodisplayonlyif” Shortcode fixed (one char removed…)

Version 2.0.12 (thank you George):

  • see Plugin-option: Switch for how to match values when using Shortcodes “filterresultsin” or/and “filterresultsnotin”: Either exact matching or regular expression matching. Default is regular expression matching. E.g.: When passing value “3” the regular expression matching is ok with “3”, “33” or “1234”. If you want exactly “3” this would require “^3$”. Or switching to exact matching, when “3” really matching only “3”.

Version 2.0.11 (thank you Layth and George):

  • {…:datetime,”d/m/Y”,0}: Problems with “/” fixed
  • Problems fixed when using [jsoncontentimporterpro] serveral times on one page

Version 2.0.11:

  • {…:datetime,”d/m/Y”,0}: Problems with “/” fixed
  • Problems fixed when using [jsoncontentimporterpro] serveral times on one page

Version 2.0.10:

  • Multisite Usage: Now WordPress-Multisite-Installations are supported.
  • Shortcode-Parameter “urlparam”, “pathparam”, “fileext”: Dynamic setting of JSON-URL -deactivated by default, must be switched on in plugin -option
  • Sorting JSON: JSON like [{“id”:”13″}, {“id”, “54”}] (array of objects) can be sorted by the Shortcode-Parameter “sortfield=id”. Plus: “sortorderisup=yes” and “sorttypeisnatural=yes” adds more options.
  • Filter JSON: From JSON like [{“id”:”13″}, {“id”, “54”}] (array of objects) items can be removed (filterresultsin=”id=13″) or only those how match are displayed (filterresultsnotin=”id=13″)
    By filterresultsin=”id” the value if “id” can be passed via GET or POST through ?id=val….
  • Shortcode “dodisplayonlyif”: E.g. dodisplayonlyif=”key=test” means, that a GET or POST must give a input variable key with value test.
  • Shortcode requiredfieldsandvalueslogicandbetweentwofields: If “yes” the “#” separated datafields are AND-connected (default is OR)
  • Content manipulator
    {street:purejsondata}: pass the unchanged JSON-value
    {street:ifNotEmptyDelFromEnd:startright,length}: Remove chars starting from the end
    {number:round,digits,up}: Round a number
  • Some minor bugfixes like handlng of “$”

PS: Thank you Rod, Layth, George, Kevin, Lucas for inspiring me and the plugin!