WidgetCoreWidgetCore Documentation

Frequently asked questions

Answers to the most common questions about WidgetCore — installation, updates, Elementor and WordPress compatibility, how search works, the FAQ schema and the license.

The questions that come up most often. If yours is not answered here, see the troubleshooting page.

Is the plugin free?

Yes. WidgetCore is free and open source under the GPL-2.0-or-later license, the same license as WordPress itself. There is no paid version, no licence key and no feature that unlocks later. You can use it on as many sites as you like, and you can modify it.

What does the plugin require?

RequirementMinimum
WordPress6.7
PHP7.4
ElementorInstalled and active
Elementor tested up to4.3.2

Elementor is a hard requirement: every widget extends Elementor's Widget_Base class, so without Elementor no widget is registered. The verified compatibility matrix is on the requirements page.

Does the plugin work on left-to-right sites?

Yes. All layout rules use logical properties (inset-inline-start, margin-inline, text-align: start), so the widgets follow the document direction automatically. On an English (LTR) site the icon sits on the right side of the field and the panel aligns to the left; on a Persian (RTL) site everything mirrors. There is a single stylesheet and no separate RTL file.

I cannot find the widgets in the Elementor editor. What should I do?

Work through these steps:

  1. Confirm Elementor is active

    On the Plugins screen, Elementor must show “Active”.

  2. Search the widget panel

    Type “WidgetCore”, “faq” or “search”.

  3. Hard refresh the editor

    Ctrl + Shift + R (Cmd + Shift + R on macOS).

  4. Regenerate Elementor CSS

    “Elementor → Tools → Regenerate CSS & Data”.

  5. Check debug.log

    A fatal error from another plugin can stop widget registration.

If the category “WidgetCore Widgets” is present but empty, a PHP error occurred while loading the widget classes; the message will be in wp-content/debug.log.

Search returns no results. Where is the problem?

The most common causes, in order:

CauseCheck
The query is shorter than 2 charactersType at least two characters before results are requested
The Source is a different post typeSet “Source” to the post type that holds your content
A date or term filter excludes everythingTemporarily set “Date filter” to All and clear the term filters
The posts are drafts or password protectedOnly published, unprotected posts are searchable
The REST API is blockedOpen /wp-json/wgcr/v1/search?q=test in a browser

The full decision tree is on the troubleshooting page.

What is the difference between “List mode” and “Page mode”?

List mode (modal) shows results in a dropdown panel below the field; the panel closes on an outside click or Escape. It suits a header or sidebar field.

Page mode (page) keeps an always-visible results region inside the widget and adds layout controls: template choice, items per page, columns (1 to 3), masonry and equal height. It suits a dedicated search page.

A side-by-side comparison is on the display modes page.

Can I build the result design entirely myself?

Yes, in two ways:

WayWhat you control
Style controls + CSS classesColours, spacing, radius, thumbnails and typography of the built-in card
A custom Elementor templateThe whole markup of each result

With a template, set “Template choice” to Custom and pick a published template from the library. The plugin renders it per result, loads its CSS once and runs Elementor's front-end handlers on the injected markup. If the template renders nothing visible, the plugin falls back to the built-in card. Details on the templates page.

Does search work with custom post types?

Yes. Set Source to “Custom post type” and enter the post type slug (for example course or product). Only public, searchable post types are accepted; attachment and elementor_library are always excluded, and an invalid slug falls back to post. You can also search every post type at once with “All post types”.

What effect does the FAQ widget have on SEO?

With the “FAQ schema” control on, the widget prints a FAQPage JSON-LD block containing every question and answer. That makes the page eligible for FAQ rich results, which can increase the space your listing occupies in search results and improve click-through.

Two conditions matter: the content must genuinely be question-and-answer content (not marketing copy), and only one FAQ widget per page should emit schema — which the plugin already enforces.

Why does only the first FAQ widget output schema?

To prevent duplicate structured data. If two widgets on one page both printed FAQPage markup, search engines would see the same entity twice, which can invalidate the rich result or produce a warning in Search Console. The plugin therefore emits schema only from the first FAQ widget rendered on the page. If you need both sets in the schema, merge them into one widget.

How is the plugin updated?

From version 0.0.7 onwards, updates come directly from the GitHub repository. WordPress reads the latest release of WidgetCore/Plugin, shows the usual “new version available” notice on the Plugins screen, and installs the widgetcore.zip asset of that release. There is also a “Check for updates” link that clears the 12-hour cache and checks immediately, and native WordPress auto-updates work as usual. Full details on the updates page.

My GitHub repository is private. Will updates work?

Yes, with a token. Define it in wp-config.php:

php
define( 'WGCR_GITHUB_TOKEN', 'ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxx' );

The token is sent as a Bearer authorization header on the GitHub API requests. Read access is enough (public_repo for a public repository, repo for a private one). Never place the token in a theme file or a public repository.

Does updating wipe my widget settings?

No. The plugin stores no data of its own — no options, no database tables, no media. Every setting lives inside the Elementor content of the page where you placed the widget, so updating, deactivating or even deleting and reinstalling the plugin leaves your settings untouched.

Can I put a search field outside Elementor?

Yes, with the shortcode:

[wgcr_search]
[wgcr_search source="course" limit="8" mode="page" columns="3"]

It works in post content, in a theme template via do_shortcode() and in other plugins. All 24 attributes are optional; the complete reference is on the shortcode page. You can also call the underlying function directly:

php
echo wgcr_search_render( array( 'limit' => 6 ), 'homepage' );

Is any data from my site sent to another server?

Only in one case, and only when you check for updates. The plugin sends a request to the GitHub API to read the latest release information. Search never leaves your server: the field talks to your own WordPress REST API at /wp-json/wgcr/v1/search. There is no analytics, no licence check, no third-party script, font or stylesheet — the package contains no external asset at all.

Is the plugin compatible with caching and optimiser plugins?

Yes. Because every search request goes to the REST API, cached page HTML does not affect results. Two details to keep in mind:

CaseEffect
A server cache that strips custom headersX-WP-Total and X-WP-TotalPages disappear, so numbered pagination cannot build the full page list
CSS/JS minification and concatenationWorks normally; the assets are registered with the plugin version, so a new release is fetched automatically

If numbered pagination stops showing page numbers, exclude the wgcr/v1/search route from your cache.

What is the cap on the number of results?

Each request returns at most 50 results, defined by the WGCR_SEARCH_MAX_RESULTS constant. The “Items per page” control is limited to 1–50 and defaults to 12 (the shortcode defaults to 5). To raise the cap, define the constant in wp-config.php:

php
define( 'WGCR_SEARCH_MAX_RESULTS', 100 );

Which widgets does the plugin have?

The widgets are a growing set: the up-to-date list, with each widget's id and purpose, is on the widgets page, and every widget has its own guide page. 2 widgets are published today; all of them register in the “WidgetCore Widgets” category in the Elementor editor and load their assets only on pages where they are used.

Where can I see what changed in each version?

On the changelog page, which lists every release with its changes in both Persian and English. The same information is in the plugin's readme.txt and in the release notes on GitHub, which also appear on the “View details” screen in WordPress.