MyListing Embeddable Listings
The {CODICTS} MyListing Embeddable Listings plugin lets you generate embeddable listing widgets — collections of listing cards or text listings — that can be placed on any external website via a code snippet, or displayed on your own WordPress site using a shortcode. Unlike the sibling “Embed Listing Page” plugin (which embeds a single listing’s full page), this plugin embeds queried collections of listings based on configurable filters.
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”.
Once activated, navigate to “Embeddable Listings” in the WordPress admin sidebar. Create at least one Embed Form, then place the provided shortcode on a page where users (or you) will generate embed snippets.
Key Features
| Feature | Description |
|---|---|
| Embeddable Listing Widgets | Generate a code snippet that renders a collection of MyListing listing cards inside an auto-resizing iframe on any external website. |
| Shortcode Support | Display the embed form on any WordPress page using a shortcode. |
| Rich Query Filters | Filter listings by categories, regions, tags, custom taxonomies, listing types, specific listings, priority levels, and author. |
| Two Template Modes | Choose between “Preview Card” (MyListing’s standard listing card grid) or “Text view” (a minimal text-based list). |
| Admin-Controlled Options | Set default filter values and choose which options are visible to frontend users via toggle checkboxes. |
| Author Filtering | Listing owners can filter the embed to show only their own listings. |
| Priority Ordering | Support for MyListing’s priority system — promoted and featured listings appear first. |
| Auto-Resizing Iframe | The embedded widget automatically adjusts its height to fit content — no scrollbars. |
| Multiple Embeds Per Page | Multiple embed widgets can coexist on the same external page. |
How It Works
The plugin works in four stages:
1. Admin creates an Embed Form — In the WordPress admin, you define which filters to apply (categories, regions, listing types, etc.), set default values for each filter, and choose which filters frontend users can modify.
2. Shortcode placed on a page — You place the Embed Form’s shortcode on any WordPress page. This renders a form where users can adjust the visible filters and generate their embed code.
3. User generates embed code — The user configures the filters (if allowed), clicks Submit, and receives a code snippet in a popup modal that they can copy.
4. External website displays listings — The snippet is pasted into any external website’s HTML. It loads a small script from your WordPress site, queries the matching listings, and renders them inside an auto-resizing iframe — either as MyListing preview cards or as a text-based list.
Creating an Embed Form
Step 1: Add a New Form
Navigate to Embeddable Listings → Add New in the WordPress admin.
Step 2: Enter a Title
Give the form a descriptive name (e.g., “Restaurant Listings Widget” or “All Listings Embed”). This title is for your internal reference.
Step 3: Configure Filters and Settings
Set default values for each filter and choose which ones frontend users can modify (see the Form Settings Reference below).
Step 4: Save
Click “Save”. A shortcode will be displayed above the form — copy it for the next step.
Step 5: Place the Shortcode
Paste the shortcode on any WordPress page, post, or widget where users should generate embed code:
[codicts-mylisting-embeddable-listings id="123"]
Replace 123 with your Embed Form’s actual ID (shown on the form edit screen and in the Embed Forms list).
Form Settings Reference
Each Embed Form has a set of configurable filters and display options. For every option, you set a default value and choose whether to show it to frontend users.
Query Filters
| Setting | Description | Default |
|---|---|---|
| Filter by Categories | Select listing categories to include. Leave empty for all. | All |
| Filter by Region | Select regions to include. Leave empty for all. | All |
| Filter by Tags | Select tags to include. Leave empty for all. | All |
| Filter by Custom Taxonomies | Automatically generated for each custom taxonomy registered in MyListing. Leave empty for all. | All |
| Filter by Listing Type(s) | Select which MyListing listing types to include. | All |
| Filter by Listing(s) | Select specific individual listings to include. Can be filtered by the selected listing types above. | All |
| Filter by Priority | Filter by priority levels: Normal, Featured, Promoted, or Custom. | All |
| Filter by Current Owner? | When “Yes”, only shows listings owned by the logged-in user who generated the snippet. Only visible to logged-in users. | No |
Display & Ordering Settings
| Setting | Description | Default |
|---|---|---|
| Template Type | “Preview Card” renders MyListing listing cards in a responsive grid. “Text view” renders a minimal text list with titles, taglines, and dates. | Preview Card |
| Limit Results by | Maximum number of listings to display. | 25 |
| Order by | Sort listings by: Date, Included order, Rating, Random, or Last modified date. | Date |
| Order | Sort direction: Ascending or Descending. | Descending |
| Order by priority first? | When “Yes”, promoted and featured listings appear before regular listings regardless of the selected sort order. | Yes |
| Show badge for featured/promoted listings? | When “Yes”, the priority badge is visible on listing cards. When “No”, badges are hidden. | Yes |
| Show header and footer on redirect to main site? | When “No”, clicking a listing from the embed opens the listing page with the site header and footer hidden. | No |
The “Show on Frontend” Toggle
Each setting has a paired “Show this option on frontend?” checkbox:
| Setting | Behavior |
|---|---|
| Checked | The user sees this option on the frontend form and can change it. |
| Unchecked | The admin’s default value is enforced silently. The user cannot see or change this option. |
This gives you full control over what users can customize. For example, you might want users to choose categories but not be able to change the result limit or template type.
Managing Embed Forms
Navigate to Embeddable Listings → Embed Forms to see all your forms in a list.
| Feature | Description |
|---|---|
| Search | Search forms by title. |
| Sort | Sort by Title, Author, or Date. |
| Edit | Click a form title to open the editor. |
| Shortcode | Each row displays the shortcode in a copy-friendly input field. |
| Duplicate | Create a copy of a form (appends “_copy” to the title). |
| Delete | Permanently delete a form. |
| Bulk Delete | Select multiple forms and delete them at once. |
Frontend User Experience
The Embed Form
When a user visits the page with your shortcode, they see a form with only the filter options you’ve enabled. For example, if you enabled Categories and Listing Types but disabled everything else, the user sees only those two dropdowns plus a Submit button.
Generating the Embed Code
1. The user adjusts the available filters to their preference.
2. They click “Submit”.
3. A modal popup appears with a text area containing the generated embed code.
4. The user clicks the text area to select all the code, copies it, and pastes it into their external website’s HTML.
The Author Filter
The “Filter by Current Owner?” option is a special filter designed for listing owners. When enabled and set to “Yes”, the generated embed snippet only shows listings owned by the logged-in user who generated it. This is ideal for listing owners who want to embed their own listings on their external website or blog.
Note: The author filter option only appears to logged-in users. Logged-out visitors will not see this option on the frontend form.
Template Modes
Preview Card (Default)
Renders a responsive grid of MyListing listing preview cards — the same visual style used on your explore/listing pages. The grid adjusts from 3 columns on large screens to 2 on small screens to 1 on mobile.
Text View
Renders a minimal text-based list. Each listing shows its title, tagline or description excerpt, and a “posted time ago” date. This mode is useful for lightweight embeds or when the visual card style isn’t appropriate.
Priority Ordering
The plugin supports MyListing’s priority system for controlling the order listings appear in the embed:
| Setting | What It Does |
|---|---|
| Filter by Priority | Only include listings at specific priority levels (Normal, Featured, Promoted, or Custom). |
| Order by priority first? | When “Yes”, promoted and featured listings always appear before normal listings, regardless of the sort order. The selected sort order (Date, Rating, etc.) is applied within each priority group. |
| Show badge for featured/promoted? | Controls whether the priority badge is visible on listing cards in the embed. |
Header/Footer Control
When someone clicks a listing in the embed, they’re taken to the full listing page on your WordPress site. The “Show header and footer on redirect to main site?” setting controls whether your site’s header and footer are visible on that page:
| Setting | Behavior |
|---|---|
| Yes | The listing page opens normally with full header and footer. |
| No (default) | The listing page opens with the header and footer hidden, providing a cleaner experience for visitors coming from the embed. |
Using Multiple Embed Forms
You can create multiple Embed Forms for different use cases. For example:
A “Restaurant Widget” form pre-filtered to the Restaurant listing type, with only the Region filter visible to users.
A “Featured Listings Widget” form pre-filtered to Featured/Promoted priority, with no user-configurable options (all toggles unchecked).
An “Owner Listings Widget” form with the author filter enabled, letting listing owners embed their own listings.
Each form has its own shortcode, so you can place them on different pages for different audiences.
This Plugin vs. “Embed Listing Page”
| Embeddable Listings (this plugin) | Embed Listing Page | |
|---|---|---|
| What it embeds | A collection/grid of listing cards based on query filters | A single listing’s full page |
| Use case | Showcasing multiple listings (e.g., “all restaurants in downtown”) | Displaying one specific listing in full detail |
| Who generates the code | Users via a frontend form, or admin via shortcode configuration | Listing owners from their My Listings dashboard |
| Template options | Preview cards or text list | Full listing page (minus header/footer) |
Both plugins can be used together on the same site.
Frequently Asked Questions
Can I create multiple Embed Forms?
Yes. Create as many as you need, each with different filters, template types, and visibility settings. Each gets its own shortcode.
Can users modify the embed options?
Only the options where you’ve checked “Show this option on frontend?”. All other options use your default values silently.
Does the embed work on any website?
Yes, as long as the consumer site supports HTML and JavaScript. The plugin uses a technique (JSONP) that avoids most cross-origin restrictions.
What does “Filter by Current Owner?” do?
When set to “Yes”, the embed only shows listings owned by the logged-in user who generated the snippet. This lets listing owners embed their own listings on their personal website.
How does priority ordering work?
When “Order by priority first?” is “Yes”, promoted and featured listings appear before normal listings regardless of the sort order. The secondary sort (Date, Rating, etc.) is applied within each priority group.
Does the embed preserve listing card functionality?
The preview cards are rendered server-side using MyListing’s standard template, so they include all visual elements. Gallery navigation within cards works normally. Clicking a listing opens the full listing page in a new browser tab.
Is the embed mobile responsive?
Yes. The grid adjusts from 3 columns on large screens, to 2 on small screens, to 1 on extra-small screens. The iframe is set to 100% width and auto-resizes its height.
Can multiple embeds exist on the same external page?
Yes. The embed script is designed to load only once even when multiple snippets are on the same page, and each embed widget operates independently.
Can I use this with WooCommerce listing packages?
The plugin doesn’t directly filter by WooCommerce packages, but you can filter by listing types and priority levels, which are often associated with specific packages.
Troubleshooting
Embed Shows a Blank Page or Error on External Sites
| Cause | Solution |
|---|---|
| Mixed content (HTTP/HTTPS) | If your site uses HTTPS and the external site uses HTTP (or vice versa), the browser may block the embed script. Ensure both sites use HTTPS. |
| Rewrite rules not flushed | If the API endpoint returns a 404 error, deactivate and reactivate the plugin to flush rewrite rules. Alternatively, visit Settings → Permalinks and click “Save Changes”. |
| Object cache (Redis/Memcached) | If the embed returns stale or incorrect data, try flushing your object cache. |
| Server or CDN overriding CORS | The plugin sets open CORS headers, but your server or CDN may override them. Check your server configuration. |
Shortcode Not Rendering
| Cause | Solution |
|---|---|
| Embed Form doesn’t exist | Verify the form with the specified ID exists in Embeddable Listings → Embed Forms. |
Missing id attribute | The shortcode requires an id attribute: [codicts-mylisting-embeddable-listings id="123"]. |
| MyListing not active | The plugin requires an active MyListing theme to function. |
No Listings Displayed in the Embed
| Cause | Solution |
|---|---|
| Filters too restrictive | Your combination of filters may match no listings. Try setting all filters to empty (which means “all”) to test. |
| No published listings | Only listings with publish status are included. Verify matching listings exist and are published. |
| Limit set to 0 | Ensure the “Limit Results by” setting is greater than 0. |
| Author filter active with no listings | If “Filter by Current Owner?” is “Yes”, the user generating the snippet must have published listings. |
Listing Cards Not Styled Correctly in Embed
| Cause | Solution |
|---|---|
| CSS not loading in iframe | The iframe loads your full WordPress styles. If a caching plugin is conditionally excluding CSS, the cards may appear unstyled. Clear your cache or whitelist the embed endpoint. |
Header/Footer Still Visible When Clicking Through
| Cause | Solution |
|---|---|
| “Show header and footer” set to “Yes” | Change the setting to “No” in the Embed Form to hide the header and footer on click-through. |
| Page caching | A caching plugin may be serving a cached version of the listing page without the hiding CSS. Exclude pages with the ?cdts-hf=1 parameter from your cache. |
Select2 Dropdowns Not Working on Frontend Form
| Cause | Solution |
|---|---|
| JavaScript conflict | Another plugin may conflict with Select2. Check the browser console for errors. |
| jQuery not loaded | Ensure jQuery is loading on the page. Some optimization plugins may defer or remove jQuery. |
“MyListing Theme Not Detected” Error
The MyListing theme must be installed and active. Go to Appearance → Themes to verify. The plugin’s settings, shortcode, and API do not function without MyListing.
Settings Page Not Appearing
| Cause | Solution |
|---|---|
| MyListing not active | Install and activate the MyListing theme first. |
| Plugin not activated | Verify the plugin is active in Plugins → Installed Plugins. |
For further support, visit codicts.com or contact us at support@codicts.com.