JsonifyWP is a WordPress plugin that lets you manage custom API endpoints—each with its own title, language, API URL (endpoint), templates, and detail page settings—stored in a dedicated database table. You can display data from remote JSON APIs on your site using flexible templates.
- Admin interface to manage endpoints with full configuration options
- Custom database table (
wp_jsonifywp) to store all endpoint configurations - Multiple templates for list and detail views (selectable per endpoint)
- Flexible shortcodes to display API data using the selected template
- Template system easily extensible with your own PHP templates
- Navigation support between list and detail pages
- Smart URL handling - shortcodes automatically read parameters from the URL
- Two operation modes: full list-to-detail navigation or list-only with API pagination
- Endpoint duplication for quick setup of similar configurations
- Multilingual support with translation files in the
languagesfolder
- Upload the
jsonifywpfolder to your WordPresswp-content/plugins/directory. - Ensure the
templates/list/andtemplates/detail/subfolders exist and contain at least one template each (e.g.,default.phpanddefault_detail.php). - Activate the plugin from the WordPress admin panel.
- Go to the JsonifyWP menu in the admin sidebar to add and manage endpoints.
When creating or editing an endpoint, you can configure:
- Title: Display name for the endpoint
- Language: For display purposes (language parameters should be included in the API URL if required)
- API domain: Optional base domain to prepend to detail URLs if they are relative
- API URL: Main list endpoint (do not include
pageorlimitparameters, as these are handled automatically) - List template: Choose from available templates in
templates/list/ - Detail template: Choose from
templates/detail/templates, or select No detail page for list-only mode - Detail page URL: Required only for detail mode - relative URL to the WordPress page containing
[jsonifywp_detail] - Detail API field: Required only for detail mode - JSON field name containing the detail API URL
Detail Mode (default):
- Each list item can link to a detail page showing expanded information
- Requires a second API call to fetch detailed data
- Suitable for member directories, product catalogs, etc.
List-only Mode:
- Select "No detail page" as the detail template
- Displays only a paginated list with automatic API-driven pagination
- The plugin automatically adds
pageandlimitparameters to API requests - Ideal for publications, news feeds, or simple data lists
Configure global options from JsonifyWP > Settings:
- Items per page: Number of items to display per page for list-only endpoints
For list-only endpoints, your API should return JSON in this format:
{
"total": 42,
"page": 1,
"limit": 10,
"items": [
"Information A...",
"Information B...",
"Information C...",
"..."
]
}- total: Total number of available items
- page: Current page number
- limit: Number of items per page
- items: Array of items for the current page
Display a List:
[jsonifywp id="1"]
Or use the alias format:
[jsonifywp-1]
Display a Detail Page:
[jsonifywp_detail]
You can find the correct shortcode for each endpoint in the admin endpoints table, ready to copy and paste.
- Create a WordPress page (e.g.,
/detail/) and add the[jsonifywp_detail]shortcode - In JsonifyWP admin, set the Detail page URL field to match your page slug (e.g.,
detail) - The plugin automatically handles URL parameters like
/detail/?jsonifywp_id=1&item=2
- List templates use
$item_obj->detail_page_urlto generate correct detail page links - The plugin fetches the main API, extracts the detail URL from the configured JSON field
- Makes a second API call to fetch and display detailed information
- List templates: Place in
templates/list/directory - Detail templates: Place in
templates/detail/directory - Templates are standard PHP files with access to API data variables
- Select templates per endpoint in the admin interface
$json: Decoded API response data$item_obj: Full endpoint configuration object$type_id: Current endpoint ID
Quickly duplicate any endpoint from the admin endpoints list. Click the "Duplicate" action to create a new endpoint with the same configuration (title will have "(copy)" appended). This makes it easy to create similar endpoints without re-entering all details.
Get items per page setting:
$items_per_page = get_option('jsonifywp_items_per_page', 5);Access from JavaScript (if loaded):
const itemsPerPage = window.jsonifywp_vars?.itemsPerPage || 5;This plugin is licensed under the GPLv2 or later. See LICENSE for details.
Developed by Oscar Periche. Contributions welcome!