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
| Item | Minimum | Notes |
|---|---|---|
| WordPress | 6.7 | Declared with Requires at least in the plugin header |
| PHP | 7.4 | Declared with Requires PHP |
| Elementor | Installed and active | Declared with Requires Plugins: elementor; without it no widget is registered |
| Elementor tested up to | 4.3.2 | The latest version the plugin was verified against |
Verified compatibility
| WordPress | Elementor | Status |
|---|---|---|
| 7.1.2 | 4.3.2 | Tested and verified |
| 6.7.4 | 4.0.8 | Tested 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:
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-TotalandX-WP-TotalPagesheaders, numbered pagination cannot build the full page list. search.cssandsearch.jsare 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
| Language | Translation file | Status |
|---|---|---|
| Persian | widgetcore-fa_IR.mo | Complete, bundled |
| English | widgetcore-en_US.mo | Complete, bundled |
| Other languages | widgetcore.pot | Template 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:
| Feature | Used for | Fallback when missing |
|---|---|---|
fetch | Retrieving search results | The “error fetching results” message |
AbortController | Cancelling the previous request while typing fast | Requests are answered in order |
IntersectionObserver | Infinite scroll in Page display mode | Load-on-click and numbered pagination still work |
prefers-reduced-motion | Reducing animation | Animations play in full |
Not covered
Pre-install checklist
Check your WordPress and PHP versions
Both are shown under “Tools → Site Health” in the dashboard.
Activate Elementor
Without it, the “WidgetCore Widgets” category never appears in the editor.
Test the REST API
Open
/wp-json/in a browser; you should see JSON.Install the package
Follow the installation guide.