This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Hosted Content Importer (HCI)


It imports third party hosted contents within WordPress blog. You can define from which url/resource to fetch the content. The original source may be editable by anyone else whom you trust. Thus, it logically empowers you to allow other users to externally edit a particular section of your blogs. And, you do not have to give them any access credentials of your website.

After installation, use shortcode tag [third] with few parameters as:

[third source="markdown" id="" section=""]
  • source is a content processor type.
  • id is a URL or ID given by the third parties.
  • section is an optional parameter to access deeper content.
  • cache is a boolean directive whether to reuse the cached content.

It will then embed remote markdown content inside your blog.
Additionally, it will convert the text into HTML using Parsedown.


source: Where to seek the data (eg. Content Hosting Server). Examples:

  • analytics: ✔ implemented (Google Analytics)
  • file: ✔ implemented (Read from local file)
  • gist: ✔ implemented (Embed Gist Snippets)
  • jotform: ✔ implemented (Embed Web Forms)
  • markdown: ✔ implemented (Parse remote markdown files)
  • qr: ✔ implemented
    1. For Custom Data,
    2. For current page’s URL
  • youtube: ✔ implemented (Embeds a YouTube Video)
  • database: Partially implemented, and left for developers
  • url, api: Work in progress
  • wikipedia: Work in progress, Strategy: Content JSON to Data Section

The list is not limited, you expand it. Join/Fork Development

id: Content ID (unique identifier) of the data you want. Often:

  • Full URLs
  • Database IDs
  • Resource IDs provided by Service Providers eg. YouTube Video ID, JotForm Form ID, …
  • Full Path of a Local File

section: Additional parameter to identify the specific section of the content.

Example: Parsing a remote .md file

[third source="markdown" id="" section=""]

Learn to write your .md file.

Example: Embedding a gist code from GitHub

[third source="gist" id="000000000000" section="filename.php"]

Create your gists at GitHub.

Example: Embedding a JotForm

[third source="jotform" id="000000000000" section=""]

Create your own web form at JotForm website.

Example: Reading a server’s local file

[third source="file" id="/tmp/readme.txt" section=""]

It has to be a static file for security reasons. For example, if you read the .php file, it will NOT process it, rather read its contents only. Your can contain valid HTML data, css and javascripts.

Example: Accessing database – Expand it yourself

[third source="database" id="0" section="recent"]

Detailed implementations are left for the developers because of the nature. It is a proof of concept work. Please feel free to modify/expand it.

Example: Custom QR Code

[third source="qr" id="YOUR DATA" section=""]

Example: QR Code for Current Page (Full URL)

[third source="qr" id="url" section="internal"]

The above example is a full code. If you embed it anywhere, it lets your users copy that page’s URL into their mobile.

Example: Embedding a YouTube Video

[third source="youtube" id="v00000000000" section=""]

Choose your video from YouTube.

Personalized Content Processors

You may often consider writing your own Content Processor.
Refer to Custom Content Processor section in [Other Notes] tab.

Custom Content Processors

If you want to develop your own Content Processor, it is much easier now.
Just create a tiny class file inside classes/processors as like one of the existing one. Simple examples are YouTube, JotForm and Gist processors.

Minimum requirements

  1. File name:
  2. Method: public function fetch($form_id = null, $section = null).
    • Process your content.
    • Return HTML string.
    • For references, see
  3. Use as: [third source="YOURNAME" section=""]

Click for real examples.

Just that much easy drop-in replacement.

Banner Image

Used from


  • Usage Example for “” file on a remote server with full URL. View raw file.

  • Output inside your blog.

  • TinyMCE plugin icon in Visual Editor Mode.

  • Tags inserters in Text Editor Mode.

  • Reports on [third] tags usages and cached files.


Method #1

  • Go to your WP Admin > Plugins > Add New page.
  • Search for “Hosted Content Importer”.
  • Click install. Click activate.

Method #2

  • Download this plugin as a .zip file.
  • Go to WP Admin > Plugins > Add new > Upload Plugin.
  • Upload the .zip file and activate the plugin.

Method #3

  • Download the file
  • Unzip the file on your computer.
  • Upload folder hosted-content-importer (you just unzipped) to /wp-content/plugins/ directory.
  • Activate the plugin through the WP Admin > Plugins menu.

Click on how to install a WordPress Plugin for more details.


How can I use it?

Within your blog post or page, write a insert the similar snippet below:


[third source="markdown" id="FULLURL/" section=""]

Your URL (ID) should be a full URL to your .md file on the remote server.

There are several other ways to include remote contents. Each unique content is processed by its own processor. View Source Codes for each processors.

How does it work?

The plugin brings your contents using the defined Source’s ID and Section. The parameters (source, id, section) are a stable list of names proposed to long term support the future development. When we add new Content Processes, they are less likely to change.

Does it work for everyone?

Yes, but not necessarily. The usage is very tricky. You can remotely host your .md files and embed them in your blogs. In some cases, you may consider editing this plugin and adding your own methods.

What happens if the third party content source is down?

We never thought of that downtime. In new release, a cache is enabled.

Are all the content sources processors implemented fully?

By the nature of the product, no. However, You can consider source="markdown" and source="file" as a completed codes. Any other implementation may require you to modify your plugin to suit it for yourself.

Is it safe to embed third party contents?

As a matter of rule, do not embed something that you do not trust at all. Implementation should be designed NOT to reveal API access details or anything else. Limit the access only to the standard parameters only. Other private details should be defined within the content processor class files. It does NOT execute PHP scripts from remote contents. But HTML yes – which means, it can consume external image, css, javascripts, media files, etc.

If you are maintainer of a portion of the content of any other websites, act responsibly; do NOT commit any unsafe contents. When you edit some file that you have access to, it may affect someone else’s website that you are authorised to manage contents.

Be good, do good. Always import contents only from the sources that you trust.

Also, you can create and host your own Micro Content Services. See an Example.

How to safeguard my remote contents?

The answer is beyond the scope of this plugin. But, always consume content from trusted sources only. Security depends on how you use remote contents. If the remote content is distorted, it may reflect back in your website. Do not allow weak security on your remotely edited contents. Files uploaded via Dropbox, GitHub, FTP/SSH, SVN/GIT may be considered safe as they require password to upload the contents.


October 16, 2019
Exactly what I was looking for. A simple way for both Content teams & Dev teams to maintain separate content streams using Wordpress for basic editing, and Github hosted .md files from the development team for the nitty grity.
Read all 2 reviews

Contributors & Developers

“Hosted Content Importer (HCI)” is open source software. The following people have contributed to this plugin.



Please view the original development at: for details and further plans.


  • Parsedown upgraded.
  • Typos corrections.


  • TinyMCE Plugin and text mode editor plugins added.
  • As-Is request for not wrapping the HTML Output within HCI divs.
  • Experimental: Dumped handlers or registered shortcodes.
  • Screenshots added.
  • Formatting and Documentation improved.


  • Banners used.
  • QR Code Added.
  • Google Analytics snippet added.
  • Build script created.
  • Admin report page with content processors available.


  • YouTube added.
  • View reports on cached files and delete them.


  • JotForm added.
  • SPL Auto-Loading the content processors.
  • Embedding gists: a new gist processor introduced.


  • Product name has HCI word in it.
  • WP Admin > Posts > With [third] Tags: Reports on which posts/pages used this shortcode.
  • Implemented caches to store once-fetched contents locally.


  • Forced not to cache in cURL.
  • Use cases explained for developers: when to use which content source processor.
  • Initial release.