WordPress plugin intelligence profile

HiveKit External API Page Content

Replace the content body of configured WordPress pages with raw HTML or Markdown fetched from external HTTP APIs.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.3.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.8 · PHP 8.3
Directory statusactive
Last directory update13 Oct 202619d ago
Active installationsNewAdoption 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 HiveKit External API Page Content version 1.3.0 as active, updated 19d ago and tested up to WordPress 7.1.

Overview

About this plugin

External API Page Content lets you create any number of configurable page-to-API mappings. No page purpose or endpoint is hard-coded.

Each mapping contains:

  • an optional administrative label
  • a WordPress page
  • an external API URL
  • payload format: auto-detect, HTML, or Markdown
  • its own cache TTL
  • optional HTTP request headers, entered one per line
  • enabled/disabled status

The endpoint must return the document directly in the HTTP response body. JSON/XML wrappers are not expected.

Features:

  • Repeatable mappings: add or remove as many mappings as needed.
  • Uses the WordPress HTTP API ( wp_safe_remote_get ).
  • Auto-detects HTML vs Markdown, or lets you force the format per mapping.
  • Sanitizes output before rendering.
  • Caches successful responses with a configurable TTL per mapping.
  • Keeps the last successful API response per mapping as an outage fallback.
  • Falls back to the original WordPress editor content if the API has never succeeded.
  • Does not read PHP constants and does not store secrets, so it cannot be used to send wp-config.php values such as database credentials to a remote server.
  • Includes a per-mapping Test API button that shows the raw response payload, HTTP status, content type, size, and detected format without changing the cache.
  • Supports per-mapping request headers using a simple Header-Name: value textarea.
  • Offers filters for advanced request/header customization.

Upgrading from 1.0

1 automatically converts the old fixed-slot settings into ordinary mappings. After migration there is no special handling for any page purpose.

0 removed the per-mapping token constant setting. php values such as database credentials to a remote URL. If you relied on that setting, add the header with the hivekit_eapc_request_args filter (see Authentication below), or type it into the mapping’s Request headers field.

Request headers

Each mapping has a Request headers textarea. Enter one header per line:

X-API-Key: abc123 X-Tenant: customer-a Accept-Language: en

Header names are validated and control characters are removed from values. Malformed lines are ignored. Explicit mapping headers take precedence over the plugin’s default headers when the same header name is supplied.

Header values entered here are stored in the WordPress options database, so anyone who can read the database can read them. For secrets, the filter shown under Authentication is preferable because it keeps the value in your own code.

The Test API button uses the request headers currently entered in the mapping, including unsaved changes.

Authentication

The plugin does not read PHP constants and does not store secrets. php, such as DB_PASSWORD or AUTH_KEY, to a remote server.

Add an Authorization header from your own code with the hivekit_eapc_request_args filter, from a small site-specific plugin or your theme:

add_filter( 'hivekit_eapc_request_args', function( $args ) { $args['headers']['Authorization'] = 'Bearer '. MY_CONTENT_API_TOKEN; return $args; } );

The filter receives ( $request_args, $url, $page_id, $mapping_id, $mapping ), so a token can be limited to one mapping:

add_filter( 'hivekit_eapc_request_args', function( $args, $url, $page_id, $mapping_id, $mapping ) { if ( 'm2' === $mapping_id ) { $args['headers']['Authorization'] = 'Bearer '. MY_LEGAL_API_TOKEN; } return $args; }, 10, 5 );

Any other header works the same way:

add_filter( 'hivekit_eapc_request_args', function( $args, $url, $page_id, $mapping_id, $mapping ) { if ( 'Policy API' === $mapping['label'] ) { $args['headers']['X-API-Key'] = 'replace-me'; } return $args; }, 10, 5 );

The Test API button runs the same filter, so a test sends exactly the headers a real fetch would.

Cached responses are not keyed by filtered arguments, so rotating a token does not by itself refresh cached content. Clear the cache after changing a token.

Security

  • URLs are restricted to public HTTP/HTTPS endpoints and fetched with wp_safe_remote_get().
  • HTML responses are sanitized using WordPress KSES rules for post content.
  • Markdown is converted to HTML and sanitized before display.
  • Script tags and other unsafe HTML are removed by default.
  • The plugin never reads PHP constants, so it cannot expose wp-config.php secrets such as database credentials or authentication salts.
  • Secrets are not written to the plugin settings. Values typed into a mapping’s Request headers field are stored in the site options table.

If you intentionally need additional HTML tags/attributes, use the hivekit_eapc_allowed_html filter.

Markdown support

The bundled dependency-free Markdown renderer is intentionally small and supports the common constructs typically used in content/legal documents:

  • headings
  • paragraphs
  • blockquotes
  • horizontal rules
  • fenced code blocks
  • ordered and unordered lists
  • links
  • inline code
  • bold, emphasis, and strikethrough

It is not a full CommonMark implementation. If your source documents depend on advanced Markdown features such as tables, nested lists, footnotes, or reference-style links, replace/extend the renderer through the hivekit_eapc_markdown_html filter or integrate a full Markdown parser.

Filters

hivekit_eapc_should_replace_content

Controls whether content replacement occurs. Receives the page ID and full mapping.

hivekit_eapc_request_args

Changes WordPress HTTP request arguments before the API request. Receives URL, page ID, stable mapping ID, and full mapping.

hivekit_eapc_allowed_html

Changes the WordPress KSES allowlist for HTML responses.

hivekit_eapc_markdown_html

Changes rendered/sanitized Markdown HTML.

hivekit_eapc_rendered_content

Changes the final HTML before caching/output. Receives the stable mapping ID and full mapping.

External requests and privacy

org.

For every enabled mapping, the plugin performs a server-side HTTP request to the exact URL entered on the settings screen and replaces the body of the mapped page with the response. You choose those endpoints, so review the privacy policy and terms of use of each API you connect before enabling a mapping.

Requests use the WordPress HTTP API ( wp_safe_remote_get ) and accept only public HTTP/HTTPS URLs. Redirects are limited to 3, the response body is capped at 2 MB and the request times out after 8 seconds.

Source code and support

com/corradofiore/wp-external-api-page-content

Bug reports and feature requests are welcome there. The distributed plugin contains the same unminified source as the repository, so no build step is required to review the code.

WordPress.org metadata

Plugin tags

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

  • api
  • content
  • html
  • markdown
  • remote
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.8 · PHP 8.3
Update activity13 Oct 202619d 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.