MyListing Carousel Addon
The {CODICTS} MyListing Carousel Addon plugin enhances three core MyListing Elementor widgets — Listing Categories, Listing Feed, and Blog Feed — by adding carousel display modes, proximity-based filtering, distance calculation, alphabetical pagination, multi-select taxonomy support, and preview card template selection. All features are configured directly through the Elementor widget controls.
Installation & Activation
Start by downloading the plugin from the Downloads page on your dashboard on the CoDicts website.
After downloading, install and activate the plugin in WordPress by navigating to “Plugins” > “Add New” > “Upload Plugin” and selecting the downloaded zip file. Click “Install Now” and then “Activate”.
On activation, the plugin automatically copies enhanced template files into your child theme directory. The new Elementor widget controls are immediately available.
Important: Both the MyListing theme and a MyListing child theme must be active. Without a child theme, the plugin displays an error notice and does not load.
Note: This plugin has no settings page. All configuration is done through the Elementor widget controls on each individual widget instance.
Key Features
| Feature | Widgets Affected | Description |
|---|---|---|
| Carousel Display | Listing Categories, Listing Feed, Blog Feed | Adds an Owl Carousel display mode with configurable autoplay, navigation style, and responsive column counts. |
| Proximity Filter | Listing Feed | Filters listings by the user’s current location within a configurable radius (km or miles). |
| Distance Calculation | Listing Preview Cards | Shows the distance between the user and each listing on preview cards using the :calculate-distance special key. |
| Alphabetical Pagination | Listing Categories | Adds A–Z letter-based navigation to filter categories alphabetically. |
| Multi-Select Taxonomy | Listing Categories | Select and display terms from multiple taxonomies at once (e.g., Categories + Regions + Tags). |
| Preview Card Template Override | Listing Feed | Choose a specific preview card template (Default, Alternate, List View) for all listings in a feed, overriding per-type settings. |
| Sorting Options | Listing Categories | Sort categories by inclusion order or alphabetically (ascending/descending). |
| Background Size Control | Listing Categories | Control the background image size for the “Cards Alternate” template. |
27 > Listing Categories Widget
The plugin adds several new controls to the standard MyListing 27 > Listing Categories Elementor widget.
Carousel Controls
| Control | Options | Description |
|---|---|---|
| Carousel | No / Yes | Enable carousel display mode instead of the standard grid. |
| Carousel Autoplay | No / Yes | Automatically scroll through items. Only visible when Carousel is Yes. |
| Carousel Nav | None / Arrows / Dots | Navigation style for the carousel. Only visible when Carousel is Yes. |
Multi-Select Taxonomy
The Taxonomy control supports selecting multiple taxonomies at once. For example, you can select Categories, Regions, and Tags simultaneously — their terms are merged into a single display.
Available taxonomies include Categories, Regions, Tags, Listing Types, and any custom taxonomies registered on your site.
Alphabetical Pagination
| Control | Options | Description |
|---|---|---|
| Alphabetical pagination | No / Yes | Adds an A–Z navigation bar above the categories. Only available when Carousel is disabled. |
| Hide empty letters? | No / Yes | When enabled, letters with no matching categories are hidden from the navigation bar. Only visible when Alphabetical pagination is Yes. |
Click any letter to filter categories starting with that letter. Use the arrow buttons to navigate between letters. The # link shows categories starting with numbers or special characters.
Note: Alphabetical pagination is only available with the Default template in non-carousel mode.
Sorting
| Control | Options | Description |
|---|---|---|
| Sort By | Included / Title | Sort categories by their inclusion order (as selected) or alphabetically by title. |
| Sort Order | ASC / DESC | Ascending or descending order. Only visible when Sort By is Title. |
Templates
| Template | Description |
|---|---|
| Default | Standard category card with background image and overlay. |
| Alternate | Region-style display with image holder and overlay. |
| Cards | Flip-card style with front (icon + name) and back (count with color). |
| Cards Alternate | Card with background image and details section below. Includes a Background Size control. |
All four templates support both grid and carousel display modes.
27 > Listing Feed Widget
The plugin adds carousel display, proximity filtering, listing template override, and additional filter controls to the standard MyListing 27 > Listing Feed Elementor widget.
Carousel Controls
| Control | Options | Description |
|---|---|---|
| Template | Grid / Carousel | Choose between standard grid layout or carousel display. |
| Carousel Autoplay | No / Yes | Automatically scroll through listings. Only visible in Carousel mode. |
| Carousel Nav | None / Arrows / Dots | Navigation style. Only visible in Carousel mode. |
| Column Count | 1–12 per breakpoint | Set how many items are visible at Desktop, Laptop, Tablet, and Mobile sizes. |
Listing Template Override
| Control | Options | Description |
|---|---|---|
| Listing Template | Same as source / Default / Alternate / List view (+ custom templates) | Override the preview card template for all listings in this specific feed. “Same as source” uses each listing type’s own template setting. |
This override only affects the specific widget instance — it does not change other Listing Feed widgets or listing displays on the page.
Proximity Filter
Filter listings by the user’s current location so only nearby listings appear.
| Control | Options | Description |
|---|---|---|
| Filter by Users Location? | Off / On | Enable proximity-based filtering. |
| Strict radius filter? | Off / On | When On, shows nothing if no listings are within the radius. When Off, falls back to normal results. |
| Radius | Number (default: 100) | The search radius around the user’s location. |
| Radius unit | Kilometers / Miles | Unit for the radius value. |
How the proximity filter works:
1. When the page loads, the plugin checks for a stored location cookie in the user’s browser.
2. If no cookie exists, the user’s browser is asked for their location (the user sees a “Allow location access” prompt).
3. The location is stored in a cookie for 12 hours so the prompt doesn’t appear on every visit.
4. The plugin filters listings to only show those within the configured radius of the user’s location.
Note: On the first visit, the page reloads automatically after obtaining the user’s location to apply the filter. This is expected behavior.
Note: If the user denies location access, the proximity filter cannot work. In strict mode, the feed will appear empty. In non-strict mode, it falls back to showing normal results.
Additional Filter Controls
| Control | Description |
|---|---|
| Filter by Categories | Select specific listing categories to include. |
| Filter by Regions | Select specific regions to include. |
| Filter by Tags | Select specific tags to include. |
| Filter by Listing Type(s) | Select specific listing types to include. |
| Filter by Priority | Filter by Normal, Featured, Promoted, or Custom priority levels. |
| Select a list of listings | Hand-pick specific listings by ID. |
| Order by | Date, Included order, Rating, Random, or Last modified. |
| Order by priority first? | Order by listing priority before the selected sort order. |
| Show badge for featured/promoted? | Show or hide priority badges on preview cards. |
| Invert nav color? | Use light navigation colors for dark backgrounds (carousel only). |
| Cache results for | Cache duration in minutes (default: 720 = 12 hours). |
27 > Blog Feed Widget
The plugin adds a carousel display mode to the standard MyListing 27 > Blog Feed Elementor widget.
| Control | Options | Description |
|---|---|---|
| Template | Two Columns / Three Columns / Carousel | Choose between standard grid layouts or carousel display. |
| Carousel Autoplay | No / Yes | Automatically scroll through posts. Only visible in Carousel mode. |
| Carousel Nav | None / Arrows / Dots | Navigation style. Only visible in Carousel mode. |
| Column Count | 1–12 per breakpoint | Set how many items are visible at Desktop, Laptop, Tablet, and Mobile sizes. Only visible in Carousel mode. |
Standard Blog Feed controls (number of items, filter by categories, filter by post) continue to work as before.
Distance Calculation on Preview Cards
The plugin overrides the :calculate-distance special key in MyListing’s preview card system. When this key is used in a preview card template, it displays the distance between the user and each listing.
The distance is calculated using the great-circle formula and is automatically formatted based on the unit system:
| Unit System | Close Distance | Normal Distance |
|---|---|---|
| Metric | Shown in metres (e.g., “800m”) when under 1 km | Shown in kilometres (e.g., “1.5km”) |
| Imperial | Shown in feet (e.g., “1200ft”) when under 0.5 miles | Shown in miles (e.g., “2.3mi”) |
The user’s location is determined from one of three sources in priority order: the current listing page’s coordinates (for similar listings), the explore page search location, or the cached browser geolocation cookie.
Carousel Behavior
All carousels across the three widgets share consistent behavior:
| Feature | Behavior |
|---|---|
| Looping | Carousels loop infinitely — scrolling past the last item returns to the first. |
| Item spacing | 20px gap between carousel items. |
| Animation speed | 500ms smooth transition between slides. |
| Opacity effect | The active carousel item displays at full opacity; adjacent items are dimmed to 40% opacity. |
| Touch support | Swipe navigation on mobile and tablet devices. |
| Multiple instances | Each carousel on a page operates independently with a unique ID. |
Default Responsive Breakpoints
| Screen Size | Width | Default Items Shown |
|---|---|---|
| Mobile | 0–767px | 1 |
| Tablet | 768–991px | 2 |
| Laptop | 992–1199px | 3 |
| Desktop | 1200px+ | 3 |
These defaults can be overridden per widget instance using the Column Count controls (where available).
Template File Management
The plugin works by copying enhanced versions of MyListing’s Elementor widget files into your child theme. Seven template files are managed:
| Template | Purpose |
|---|---|
| Listing Categories widget | Adds carousel, multi-taxonomy, alphabetical pagination, sorting, and background size controls. |
| Listing Feed widget | Adds carousel, proximity filter, listing template override, and additional filter controls. |
| Blog Feed widget | Adds carousel display mode with responsive column controls. |
| Listing Categories section | Renders the enhanced categories output (grid, carousel, alphabetical pagination). |
| Listing Feed section | Renders the enhanced listing feed output (grid, carousel, proximity query). |
| Blog Feed section | Renders the enhanced blog feed output (grid, carousel). |
| Listing Preview partial | Adds the preview card template override filter hook. |
| Event | What Happens |
|---|---|
| Plugin activation | All 7 template files are copied to the child theme. |
| Plugin update | Templates are force-reinstalled (overwrites existing files). |
| Plugin deactivation | All template files are deleted from the child theme. Widgets revert to default MyListing behavior. |
| Theme switch | Template tracking is reset. |
Note: If you manually customize any of these template files in your child theme, your changes will be overwritten when the plugin is updated or reactivated. Use CSS customizations or WordPress hooks for modifications that need to persist across updates.
Frequently Asked Questions
Is there a settings page?
No. All configuration is done through the Elementor widget controls on each individual widget instance. Edit a page in Elementor, click on a Listing Categories, Listing Feed, or Blog Feed widget, and you’ll see the new controls in the settings panel.
Why is a child theme required?
The plugin copies enhanced template files into the child theme directory. MyListing’s template hierarchy picks up child theme files over the parent theme’s defaults. Without a child theme, there’s nowhere to safely place the overrides.
What happens when I deactivate the plugin?
All copied template files are removed from the child theme. The MyListing widgets revert to their default behavior — carousel options, proximity filters, alphabetical pagination, and other enhancements disappear. Re-activating restores everything.
Can I use multiple carousels on the same page?
Yes. Each carousel instance is assigned a unique ID and operates independently. You can have multiple Listing Category carousels, Listing Feed carousels, and Blog Feed carousels on the same page.
How does the proximity filter determine my location?
The plugin uses the browser’s built-in geolocation API. On the first visit, users see a browser prompt asking to allow location access. The location is cached in a cookie for 12 hours so the prompt doesn’t appear on every page load.
What happens if a user denies location access?
The proximity filter cannot work without location access. If Strict mode is On, the feed shows nothing. If Strict mode is Off, the feed falls back to normal unfiltered results.
Why does the page reload when I first visit a page with the proximity filter?
When no location cookie exists, the plugin obtains the user’s location and then reloads the page to apply the proximity filter with the new coordinates. This only happens on the first visit — subsequent visits use the cached cookie.
Can I display categories from multiple taxonomies at once?
Yes. The enhanced Listing Categories widget supports multi-select taxonomy. Select Categories, Regions, Tags, Listing Types, or custom taxonomies simultaneously, and their terms are merged into a single display.
Can I use alphabetical pagination with the carousel?
No. Alphabetical pagination is only available with the Default template in non-carousel (grid) mode. When the carousel is enabled, the alphabetical pagination option is hidden.
Can I use the proximity filter and carousel together?
Yes. The proximity filter and carousel display are independent features and can be combined in the Listing Feed widget.
What carousel library does the plugin use?
The plugin uses Owl Carousel, which is already bundled with the MyListing theme. No additional libraries are loaded.
Does the “Listing Template” override affect other widgets?
No. The template override is scoped to the specific Listing Feed widget instance. Other Listing Feed widgets and listing displays on the page are not affected.
Troubleshooting
Carousel Not Displaying
| Cause | Solution |
|---|---|
| Carousel not enabled | Edit the widget in Elementor and set the Carousel (or Template) control to “Yes” or “Carousel.” |
| Templates not installed | Deactivate and reactivate the plugin to force-reinstall templates into the child theme. |
| Child theme not active | Go to Appearance → Themes and activate a MyListing child theme. |
| JavaScript error | Check the browser console (F12 → Console) for errors. Owl Carousel must be loaded by the MyListing theme. |
Proximity Filter — Feed Shows Empty or No Listings
| Cause | Solution |
|---|---|
| User denied location access | The proximity filter requires browser geolocation. If the user denied access, they need to reset their browser’s location permission for the site. In the meantime, set Strict radius filter to Off so the feed falls back to normal results. |
| Radius too small | Increase the Radius value in the widget settings. If your listings are spread over a large area, a small radius may not capture any. |
| No listings have location data | The proximity filter requires listings to have a location field with coordinates. Verify that your listings have location data filled in. |
| Cookie expired or cleared | The location cookie lasts 12 hours. After it expires, the page reloads to re-acquire the location. If cookies are blocked, the filter won’t work. |
Alphabetical Pagination Not Showing
| Cause | Solution |
|---|---|
| Wrong template selected | Alphabetical pagination only works with the Default template. Switch the template to Default in the widget settings. |
| Carousel is enabled | Alphabetical pagination is not compatible with carousel mode. Set Carousel to “No” to use alphabetical pagination. |
| Feature not enabled | Set “Alphabetical pagination” to “Yes” in the widget settings. |
New Widget Controls Not Appearing in Elementor
| Cause | Solution |
|---|---|
| Templates not installed | Deactivate and reactivate the plugin. Check that no admin error notice appears about missing theme/child theme. |
| Browser/Elementor cache | Clear your browser cache and purge Elementor’s CSS cache (Elementor → Tools → Regenerate CSS). |
| Plugin conflict | Another plugin may be overriding the same Elementor widget files. Deactivate other plugins temporarily to isolate the conflict. |
Distance Not Showing on Preview Cards
| Cause | Solution |
|---|---|
:calculate-distance not used in preview card | The distance display requires the :calculate-distance special key to be included in the listing type’s preview card template configuration. |
| No location source available | Distance calculation needs a reference location — either the current listing page’s coordinates, the explore page search location, or the cached browser location cookie. Ensure at least one source is available. |
“MyListing Theme Not Detected” or “Child Theme Not Detected” Error
Both the MyListing theme and a MyListing child theme must be installed and active. Go to Appearance → Themes to verify.
For further support, visit codicts.com or contact us at support@codicts.com.