WidgetCoreWidgetCore Documentation

Requirements and compatibility

Minimum WordPress, PHP and Elementor versions for WidgetCore, the verified compatibility matrix, and hosting notes such as the REST API, mbstring and caching.

Read this page once before installing. Every value here is the same value declared in the main plugin file header (widgetcore.php).

Minimum requirements

ItemMinimumNotes
WordPress6.7Declared with Requires at least in the plugin header
PHP7.4Declared with Requires PHP
ElementorInstalled and activeDeclared with Requires Plugins: elementor; without it no widget is registered
Elementor tested up to4.3.2The latest version the plugin was verified against

Verified compatibility

WordPressElementorStatus
7.1.24.3.2Tested and verified
6.7.44.0.8Tested and verified

What your server needs

A working REST API

The live search fetches results from /wp-json/wgcr/v1/search. If another plugin or a security rule blocks the WordPress REST API, search shows an error message. A quick check:

bash
curl -s "https://example.com/wp-json/wgcr/v1/search?q=hello&limit=3"

The response should be a JSON array of results. If you get rest_cannot_access or an error page, the REST API is blocked.

Multibyte string support

The search query uses mb_strlen to enforce the minimum query length (2 characters). The function exists in standard PHP installations; if your host disabled mbstring, search will not work.

Page caching

The plugin installs no page cache of its own and works fine alongside caching plugins, because every search request goes to the REST API and cached page HTML has no effect on it. Two things to keep in mind:

  • If a server-level cache (such as Varnish) strips the X-WP-Total and X-WP-TotalPages headers, numbered pagination cannot build the full page list.
  • search.css and search.js are registered with the plugin version number (WGCR_VER), so after every update browsers fetch the new files and you never need to purge the cache by hand.

Language and text direction

LanguageTranslation fileStatus
Persianwidgetcore-fa_IR.moComplete, bundled
Englishwidgetcore-en_US.moComplete, bundled
Other languageswidgetcore.potTemplate for building a new translation

Translations are loaded on the init hook at priority 1, and the global wp-content/languages/plugins/ directory is read first — meaning a translation you place there is loaded before the bundled one. This behaviour is explained on the language and translation page.

Browser support

The widgets use JavaScript features available in current browsers:

FeatureUsed forFallback when missing
fetchRetrieving search resultsThe “error fetching results” message
AbortControllerCancelling the previous request while typing fastRequests are answered in order
IntersectionObserverInfinite scroll in Page display modeLoad-on-click and numbered pagination still work
prefers-reduced-motionReducing animationAnimations play in full

Not covered

Pre-install checklist

  1. Check your WordPress and PHP versions

    Both are shown under “Tools → Site Health” in the dashboard.

  2. Activate Elementor

    Without it, the “WidgetCore Widgets” category never appears in the editor.

  3. Test the REST API

    Open /wp-json/ in a browser; you should see JSON.

  4. Install the package

    Follow the installation guide.