The given WordPress plugin is a powerful tool called CrocoBblock Layout Switcher. This plugin serves as a widget for switching between Listing Grid templates for Elementor. It provides users with the ability to easily switch between different layout options within their Elementor-based website.

Plugin Version: 1.0.0
 
WordPress plugin CrocoBblock Layout Switcher

Plugin Features

With CrocoBblock Layout Switcher, users can effortlessly change the appearance and layout of their Elementor Listing Grids. This means they can easily experiment with different designs and styles to find the one that best fits their needs and preferences.

The plugin offers a user-friendly interface that allows users to make quick and intuitive changes to their layouts. They can choose from various pre-designed templates and switch between them with just a few clicks. This flexibility allows for seamless customization without the need for coding knowledge or technical expertise.

CrocoBblock Layout Switcher is compatible with Elementor, one of the most popular drag-and-drop page builders for WordPress. It seamlessly integrates with Elementors interface, providing users with a smooth and efficient experience.

One of the key features of this plugin is its ability to save time and effort. Instead of manually reconfiguring the layout of a Listing Grid, users can simply switch between templates. This eliminates the need to recreate the layout from scratch, making it a time-saving solution for website owners and developers.

Additionally, CrocoBblock Layout Switcher offers a wide range of customization options. Users can modify the appearance of their grids by adjusting colors, typography, spacing, and more. This allows for a personalized and unique design that aligns with the websites branding and style.

Overall, CrocoBblock Layout Switcher is a versatile and user-friendly plugin for WordPress. It simplifies the process of switching between different Listing Grid templates, allowing users to easily customize their Elementor-based website. With its intuitive interface and extensive customization options, this plugin empowers users to create visually appealing and engaging layouts without the need for advanced coding skills.

Specifications:

Release date: 11-03-2023
Last updated: 18-06-2024
Type: Paid
License: GPL 
Subject: Site Management for Elementor
Compatibility: W5.x W6.x
Includes: Plugin
Language packs: English
Developer: CrocoBlock

Rating:
4.5167785234899 1 1 1 1 1 (149 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

How to Set Up CrocoBblock Layout Switcher for Dynamic WordPress Listings

CrocoBblock Layout Switcher is the task name used for the standalone Layout Switcher widget in the Crocoblock JetEngine ecosystem. In the official documentation, it is described as a beta feature for Elementor Listing Grid: the widget adds a switcher to the page so visitors can change how the same dynamic listing is displayed - for example, as cards in a grid, as a list, in two columns, or through a separate listing template.

CrocoBblock Layout Switcher in a guide to switching Listing Grid layouts
The core idea behind the plugin is to connect one Listing Grid to several convenient viewing modes and let visitors switch between them on the page.

This guide does not repeat the short product description. Instead, it explains when the switcher is actually useful, how to prepare a Listing Grid, where to find the widget in Elementor, how to choose the target listing, how to build Grid, List, and custom layout modes, how to test it with JetSmartFilters, what to do about AJAX delays, and which issues usually break the final setup.

It is important to understand the product's boundary. Layout Switcher does not create a custom post type, does not replace the Listing Template, and is not a standalone directory system. It works on top of an existing JetEngine Listing Grid + listing template setup. If the base listing is configured incorrectly, the switcher will not fix the query, fill in empty fields, or make a weak card design easier to use. Its job is simply to give visitors controlled choice over the display mode.

The guide below follows a practical sequence: first preparation and installation, then the settings map, a working example for a specialist directory, result validation, troubleshooting, and comparison with similar tools. All exact interface field names are left in English and marked as code so they are easier to find in Elementor and WordPress.

What Layout Switcher Actually Changes

In a standard Listing Grid, the administrator chooses one output format in advance: cards appear in multiple columns or as a list, with a defined number of items, a specific template, and fixed styling. Visitors only see that one version. Layout Switcher adds a second layer of control: buttons or icons appear next to the grid, and each one corresponds to a different display option.

The official example shows the basic Grid and List options, along with custom modes such as two columns or a separate listing template. If the option is based on the same default listing, the switch happens instantly. If the option loads a different listing template, AJAX loading kicks in and the content appears after a short delay. That is normal behavior, not an error by itself.

The workflow looks like this: the page must already contain a Listing Grid. Layout Switcher finds that grid through the Select a Listing Grid widget field. The administrator then creates switcher items. Each item has a visible Label, a technical Slug, an optional Icon, and layout settings. In those settings, you can mark the item as Is Default Layout, choose Listing or leave it as Default, and define the Columns number.

This setup is especially useful where different visitors are trying to do different things. One person quickly scans real estate cards by photo. Another compares specifications in a list view. A third wants a compact mode that shows price, size, and a button. If you build a separate block or tab with a separate grid for each use case, the page can become heavier and harder to maintain. Layout Switcher helps you keep one main output point while offering several ways to view it.

Practical takeaway: a layout switcher is worth adding not for a decorative button, but when different display modes genuinely improve how quickly visitors can make a choice.

You should not expect it to handle filtering, sorting, or search. Filtering is handled by JetSmartFilters, card structure by the Listing Template, and the data source by a post type, CCT, Query Builder, or another JetEngine source. Layout Switcher sits between the interface and the output: it changes how already-retrieved items are shown to the user.

Who This Approach Fits and Who It Does Not

The best use case for CrocoBblock Layout Switcher is a dynamic directory where the same set of items is genuinely useful in more than one view. That could be a real estate catalog, a specialist directory, a course list, a service showcase, a travel collection, a car catalog, an event archive, a content library, or a WooCommerce section, as long as the grid itself is built on a supported JetEngine setup and the required add-ons.

The plugin is a good fit for site owners and developers already using JetEngine and Elementor. If the project is being built in Gutenberg or Bricks, avoid carrying conclusions over automatically: the official Layout Switcher page describes an Elementor widget specifically, while Listing Grid as a component supports other editors too. So before rolling it out, verify whether Layout Switcher itself is available in your working editor. The guide below focuses on Elementor because that is what the documentation confirms.

When the Switcher Is Especially Useful

The switcher provides clear value when the listing includes different kinds of information. In a real estate directory, grid mode emphasizes photos, while list mode makes it easier to compare neighborhood, square footage, and price. In a specialist directory, a grid helps users assess cards visually, while a compact list is better for quick decisions based on experience, rates, and area of expertise. In a travel catalog, an alternative listing might show not the full description, but price, date, and departure city.

Another strong use case is a page with filters. The user first narrows the set through JetSmartFilters, then changes how the results are displayed. The official Layout Switcher documentation explicitly notes compatibility with JetSmartFilters: if the filter is connected to the Listing Grid and applied on the page, the filters continue to work after the layout changes. That does not remove the need to troubleshoot provider, apply type, and Query ID, but the integration itself is supported.

When Another Tool Is the Better Choice

Layout Switcher is unnecessary when the listing only has one natural presentation. For example, a simple news feed with three posts usually does not benefit from Grid/List buttons. It also will not solve full faceted navigation, filter indexation, SEO URLs, or advanced sorting. For that, you need JetSmartFilters, FacetWP, WP Grid Builder, or the native tools of your chosen builder.

If the site is just getting started and the entire catalog is essentially a simple list of posts with filtering, it is worth comparing approaches. Crocoblock materials explicitly separate the roles of JetEngine Listing Grid and JetSmartFilters Listing Builder: Listing Grid is stronger for complex sources, relations, CCT, Query Builder, and flexible templates, while Listing Builder in JetSmartFilters is aimed at simpler, faster filtering. So the right choice depends not on which tool is newer, but on data complexity and the display workflow you actually need.

Finally, Layout Switcher may be unnecessary on pages where the user is supposed to take one specific action without choosing a view mode. The more control buttons you place on the page, the greater the risk of overloading the interface. If the switcher does not help the user decide, it is better to keep one strong layout and invest in the card design, filters, and speed.

What to Check Before Installation

Before installation, check more than just the plugin file. Layout Switcher depends on its environment: WordPress, JetEngine, Elementor, a finished Listing Template, and at least one Listing Grid on the page. If any of those pieces are missing, Elementor may not show the expected result, or the selection field may stay empty.

Start with a simple checklist. It reduces the number of common cases where the switcher is installed but there is nothing for it to switch.

  • Make sure JetEngine is installed and active, and that the dynamic data source already exists: post type, CCT, taxonomy, users, WooCommerce products, or a custom query.
  • Create and publish a Listing Template. This is the template for a single card that Listing Grid applies to all items in the listing.
  • Open the target page in Elementor and confirm that Listing Grid is already displaying items without Layout Switcher.
  • Check that Listing Grid is using the correct listing template and query, and that an empty result is not caused by a filter, post status, or a posts number limit.
  • If the page uses JetSmartFilters, decide in advance whether filtering will work through AJAX, Mixed, or Page Reload, and whether you need a Query ID.
  • If you plan to use an alternative listing, prepare it separately and confirm that it renders correctly in a regular Listing Grid.

Editor permissions also deserve special attention. If the page is built by a content manager rather than a developer, that person needs access to edit the page in Elementor, view JetEngine Listings, and publish changes. Otherwise, the setup will stop at the point where they need to choose a listing or save the page.

Preparation matters for the display strategy too. Do not create four buttons when you effectively have only two real modes. Visitors should understand why each button exists. A good pair is Grid and List. A good trio is Grid, List, and Compact. A weak setup is five nearly identical grids with different column counts where the distinction is not obvious.

If the project uses caching, minification, or a CDN, prepare a staging copy. Layout switching and filters work on the public-facing site, so testing should happen not only in Elementor, but also on the live page as a regular visitor would see it: in a private window, logged out, after clearing cache, and at multiple screen widths.

Installation and Initial Check in WordPress

The official instructions describe Layout Switcher as a separate ZIP file obtained from the Crocoblock account and installed like a standard WordPress plugin. In the admin panel, the path is the usual one: Plugins - Add New - Upload Plugin. After selecting the ZIP file, click Install Now, then Activate Plugin.

Installing and initially checking CrocoBblock Layout Switcher in WordPress and Elementor
After installation, do not look for a global settings page. Instead, confirm that the widget appears in Elementor next to Listing Elements.

After activation, do not expect a separate large settings page. The module makes sense inside Elementor. Open the page where the Listing Grid is placed, then find Layout Switcher in the widget panel through search or in the Listing Elements group. If you cannot find the widget, check three things: whether the installed module is active, whether you opened Elementor on a page that contains a Listing Grid, and whether Elementor views have been disabled in JetEngine performance settings.

The first test should be minimal. Do not start with four custom layouts, icons, and elaborate styling. Add the widget next to Listing Grid, open its settings, and find the Select a Listing Grid widget field. If the dropdown is empty, either the page has no Listing Grid or Elementor does not recognize it as a valid target to connect to. In that case, first make sure the grid works normally without the switcher.

How to Tell the Installation Worked Properly

The installation is successful if four conditions are met. First, WordPress shows the plugin as active in the plugin list. Second, Elementor shows Layout Switcher in the widget panel. Third, the Select a Listing Grid widget field can see at least one Listing Grid on the page. Fourth, once the page is published, display mode buttons appear on the front end, and clicking them changes how the listing is shown.

If the widget is there but switching does not work, do not start by reinstalling the module. More often, the issue is caused by a connection to the wrong grid, a missing default layout, a filter conflict, a query error, or AJAX requests being cached. Those cases are covered in the troubleshooting section below.

A Note on Beta Status

Crocoblock documentation labels Layout Switcher as a separate beta feature. In practice, that means a cautious rollout path: staging first, then testing on real data, then publishing to the live site. It is not something you should enable on the day of an important launch without testing first, especially if the directory already depends on filters, custom queries, lazy load, Load More, or third-party JavaScript optimization.

Safe rule: before publishing, save a working version of the page or duplicate the template so you can quickly roll back to a single Listing Grid without the switcher.

Connecting It to Listing Grid: Choosing the Right Block

The most important Layout Switcher setting comes first: Select a Listing Grid widget. This determines which Listing Grid the switcher will control. If the page contains only one listing, the choice is obvious. If there are several, a mistake in this field leads to confusing behavior: the buttons may sit next to one directory while changing another, or they may appear to do nothing visible at all.

To avoid confusion, it helps to give widgets clear internal names in Elementor's structure. For example, the main directory could be named "Specialists Listing Grid" and the switcher "Specialists Layout Switcher." This is not a formal documentation requirement, but it is a strong editorial habit for large pages. When you need to adjust the layout a month later, you will not have to guess which grid is connected to the buttons.

One Grid, One Clear Control Area

It is best to place the switcher close to the listing it controls: above the grid, in a toolbar row next to the filters, or on the right side of the sorting panel. If the buttons are far away from the result, visitors may not understand what exactly changed. For a filtered directory, a logical control zone looks like this: filters on the left or at the top, sorting nearby, then Layout Switcher, and the Listing Grid below.

If the page includes multiple Listing Grids, use clear visual separation. For example, one grid may show "Featured Specialists" and another "All Specialists." The switcher for the second grid should not visually stick to the first one. If needed, assign CSS IDs to the containers and use a consistent style, but do not merge the control zones.

Why the Listing Grid Itself Gets Checked First

Layout Switcher does not diagnose the data source. It will not tell you that the custom post type is empty, that Query Builder returned the wrong records, or that the listing template is missing dynamic fields. That is why the base grid should be verified before adding the switcher. Open the public page and confirm that real items are displayed, images are not empty, links go where they should, filters do not break the set, and pagination or Load More does not duplicate records.

JetEngine Listing Grid has its own settings: Listing, column count, posts number, visibility, custom query, legacy query blocks, Load More, Infinite Scroll, wrapper tags, and other parameters. Layout Switcher works on top of that foundation. If the foundation is unstable, additional modes will only make troubleshooting harder.

A simple order helps here: first one working Listing Grid, then a basic Layout Switcher with two options, then styling, then filters, then an alternative listing, then a performance check. That sequence may seem slower, but in practice it saves time because each issue appears at a clear step.

Configuring the Options: Label, Slug, Icon, and Default Layout

In the Layout Switcher Content tab, there is a General section. That is where individual layout items are created. By default, the documentation describes two options - Grid and List. You can keep them, duplicate them, remove them, or add more through Add Item. Each option opens two tabs: Content and Settings.

Configuring Label, Slug, Icon, and Is Default Layout in CrocoBblock Layout Switcher
The key switcher fields define not only the button label, but also the technical reliability of the setup: slug, icon, default layout, and column count.

Label: A Clear Caption for People

Label is the visible text on the button. You can hide it using the global Labels toggle, but during testing it is better to keep labels enabled. That makes it easier to see which option you are clicking and what is supposed to change. On a Russian-language page, you might use short words like "Grid," "List," "Compact," "Prices," or "Map" - but only if they actually match the output.

Do not label buttons with technical wording if visitors will not understand it. "Two Columns" may be convenient for the developer, but on a public page something like "2 Columns" or "Compact" is usually clearer. If the button uses only an icon, choose one that matches the behavior. A list icon should lead to a list, not to yet another grid.

Slug: A Technical Name Without Spaces

Slug is tied to the current layout option. The official documentation recommends lowercase Latin letters without spaces; numbers, hyphens, and underscores are allowed. If you leave the field empty, the slug may be generated automatically from the label, but that is not always convenient for maintenance. It is better to define it explicitly: grid, list, two-columns, compact.

Do not use Cyrillic, spaces, or random symbols in the slug. Even if the interface accepts them, technical identifiers are easier to maintain when they are short, predictable, and written in Latin characters. This matters even more on multilingual sites, when moving templates, and when multiple editors work on the same project.

Icon: A Meaningful Cue, Not Decoration

The Icon field offers three options: None, Upload SVG, and Icon Library. An icon is useful when there are only a few buttons and their meaning is obvious. For example, grid and list icons work better than long labels on narrow screens. But if the option uses a separate listing template called "Just Prices," a coin icon alone may not be clear enough. In those cases, keep the label or use a clear icon + label combination.

Upload SVG icons only from trusted sources and at sensible sizes. There is no reason to insert a huge complex SVG for a tiny button. If the project goes through a security audit, SVG may require additional review because the format can contain extra data. The safest option is to use icons from the Elementor library if they fit the task.

Is Default Layout: One Starting Mode

Each option has an Is Default Layout setting. One layout must be set as default. The official instructions warn about this explicitly. In most cases, the default remains Grid because the base Listing Grid already represents the page's starting view. But if users more often compare details than browse visually, list mode can be the default while grid remains an alternative.

Do not choose the default at random. Look at user behavior or the page's business goal. For a catalog driven by strong imagery, a starting grid is usually the better choice. For a list of specialists, documents, or services, a compact list may work better. For WooCommerce products, it depends on the card: if the photo sells the product, use grid; if the specifications matter more, use list or compact.

Listing and Columns number: What Actually Changes

When Is Default Layout is turned off, settings appear that change the option's behavior. In the Listing field, you can leave Default and build the option on the same listing template, or choose a different listing that was created in advance. In the Columns number field, you define how many columns that option uses.

If you want a simple "grid - list - two columns" switch, it is enough to keep the default listing and change the column count. If you need fundamentally different card content, create a separate Listing Template and choose it in Listing. For example, the default card may show photo, name, rating, and a button, while a compact listing shows only name, specialty, city, and consultation price. In that case, the switcher changes not just the column layout, but the information density.

Product-Specific Behavior: Default Listing vs. Alternative Listing

The key built-in behavior of Layout Switcher is the difference between options that use the default listing and options that inject a different Listing Template. This is not a cosmetic detail. It is central to both speed and UX.

When all options use the default listing, what changes is mainly the layout: column count, presentation, and visual arrangement. The documentation notes that those switches appear instantly. That is useful for lightweight view changes without the feel of a page reload. The visitor clicks "List" and immediately sees the same items displayed more densely.

When an option uses a different listing, the page has to fetch and render another template. In the official example, that mode triggers a brief AJAX load. That is normal if the alternative template is genuinely useful. But if it barely differs from the default, the user gets delay with no real benefit.

When to Leave Default

Leave Default in place when the card itself should remain the same and only the viewing format changes. A typical example is a post directory with an image, title, tag, and button. In grid mode, cards are shown in three columns; in list mode, one column; in compact mode, two. The data elements are the same, only the spacing and width differ.

This approach is easier to maintain. If you fix the title, button, or dynamic field in one Listing Template, the change is reflected across all layout modes. There is less risk that one mode will become outdated and start showing an old design.

When You Need a Separate Listing Template

A separate listing is needed when the option serves a different purpose. For example, a "Full Card" view helps users choose visually, while "Compare Prices" might show only the price, duration, city, and a short button. Or "Tour Cards" might show a photo and route, while "Upcoming Dates" shows the date, seat availability, and price. In that case, a different listing is justified because it reduces information noise.

Before adding an alternative listing, test it separately. Create a temporary page or temporary Listing Grid, select that listing, and make sure it correctly pulls in all dynamic fields. Only then connect it in Layout Switcher. That sequence reduces the risk of troubleshooting both the switcher and a broken template at the same time.

How to Evaluate AJAX Delay

The delay when switching to a different listing should be short and understandable. If the user sees a long empty pause, check the card size, number of items, Query Builder complexity, images, filters, and caching. Also look at whether you are rendering several heavy listings on the same page when you do not need to.

Crocoblock optimization materials make a useful point: using different listing layouts inside Layout Switcher tabs can be better than rendering several separate listings at once because it reduces the number of DOM elements on the page. But that advantage only holds when the setup is disciplined. If each mode loads a huge template with heavy images, the benefit can disappear.

Use Cases: Directory, Showcase, and Reference Listing

To keep Layout Switcher from becoming decorative, define your use cases in advance. Below are three practical models you can adapt to different sites. They do not rely on invented product capabilities; they are based on the documented combination of Listing Grid, layout options, labels, icons, columns, and alternative listings.

Specialist Directory

For a specialist directory, it makes sense to build three modes. "Cards" show photo, name, specialty, rating, and a booking button. "List" gives you one column with more text: experience, city, consultation format, and short strengths. "Compact" keeps only the name, specialty, and button so users can scan results quickly after filtering.

In this setup, you can keep the default listing for cards and list view, changing only the columns. For compact mode, it is better to prepare a separate Listing Template because the field set is different. Validating the result is simple: apply a specialty filter, switch through all modes, and confirm that the same specialists remain while only the presentation changes.

Real Estate Catalog

In real estate, grid mode is almost always necessary for photos. But list mode becomes useful when someone is comparing neighborhood, square footage, number of rooms, and price. A separate listing can be built for a "Compare" mode: no large image, but a table of key parameters inside the card. In this variation, it is important not to overload AJAX: images should be reasonably sized, and the card should not pull in unnecessary galleries.

If JetSmartFilters for price, neighborhood, and property type are placed nearby, make sure to verify the provider and Query ID. When a page contains multiple grids, the filter must be connected to the correct Listing Grid. Otherwise, users will see the filter changing one block while the switcher controls another.

Service or Travel Showcase

For services and travel offers, Layout Switcher helps separate emotional browsing from practical comparison. In grid mode, you can show photo, title, a short benefit, and a button. In list mode, show schedule, duration, city, terms, and price if it is already part of the card. An alternative "Dates" listing can display upcoming departures or available slots.

Label choice matters here. A button labeled "List" says nothing to a Russian-speaking visitor. Something like "List," "Dates," or "Quick View" works better. If labels are disabled and only icons remain, check whether the icons make sense without explanation. The switcher should shorten the path to a decision, not add another puzzle.

Working Together with JetSmartFilters

Layout Switcher becomes especially useful when paired with JetSmartFilters, because a real directory rarely exists without filters. The user first chooses a category, city, price, or characteristic, and then switches to the most convenient result view. The official Layout Switcher documentation states that the switcher works with JetSmartFilters: if a filter is connected to the Listing Grid and applied on the page, the filters continue to work after the layout changes.

CrocoBblock Layout Switcher together with JetSmartFilters and Listing Grid on a directory page
In a working directory, the switcher usually sits next to the filters and controls the same Listing Grid, not a separate decorative block.

But compatibility does not mean every configuration will work on its own. JetSmartFilters requires the correct provider. For Listing Grid, the provider must be JetEngine, and that provider must be enabled in Smart Filters - Settings - General Settings. If it is not enabled, it may not appear in the dropdown and the filter will not apply to the correct grid.

AJAX, Mixed, and Page Reload

Apply Type affects how the filter behaves. AJAX updates results without reloading the page, but the URL does not change. Mixed updates without reloading and preserves values in the URL. Page Reload performs a full reload and also keeps state in the URL. For a convenient directory with Layout Switcher, teams usually start with AJAX or Mixed, but the right choice depends on SEO goals, back-button behavior, and whether filtered URLs need to be shareable.

If the user clicks a filter and sees a full page reload instead of a smooth update, first check Apply Type and the Listing Grid AJAX settings. If the switcher resets the active view after filtering, check whether the filter workflow conflicts with the alternative listing and whether the entire block is being re-rendered in a way that loses the button state.

When You Need a Query ID

On a simple page with one Listing Grid, Query ID may not be necessary. But with multiple grids, multiple filters, a custom query, or a more complex structure, it becomes important. JetSmartFilters documentation explains that the same Query ID must be aligned across the filter, Listing Grid, and custom query if one is used. The ID itself must be unique and must not contain spaces or special characters.

Here is a practical example: the page contains "Featured Specialists" and "All Specialists." The specialty filter should affect only "All Specialists." In that case, assign an ID to the target Listing Grid in Advanced - CSS ID, use the same ID in the filter settings, and do not connect the filter to the top grid. Layout Switcher must also be assigned to that same Listing Grid.

Pagination, Load More, and Infinite Scroll

Filters, Load More, and Infinite Scroll can produce odd symptoms: duplicated items, incomplete results, or the wrong number of posts. JetSmartFilters documentation specifically notes that posts number in Listing Grid or a custom query affects how many results are actually available for filtering. If the number is lower than the total number of matches, some results may never appear.

With Layout Switcher, test it like this: choose a filter, switch between grid and list, click Load More or go to the next page, then switch back to another layout. The set of items should remain logically consistent. If list view shows items that do not appear in grid view, the issue is most likely not the switcher buttons, but the query, provider, posts number, or loading workflow.

Practical Example: A Specialist Directory Page

Let us walk through a concrete case. The goal is to build a "Specialists" page where visitors filter experts by specialty and can choose one of three views: cards, list, and compact mode. This is a strong example for Layout Switcher because different modes serve different users: visual browsing, detailed comparison, and fast selection after filtering.

Goal

You need one Listing Grid connected to the "Specialists" custom post type and a switcher that changes the display without creating three separate visible grids. In the starting mode, display cards in three columns. In list mode, use one column with detailed information. In compact mode, use a separate listing template with a short card.

Preparation

JetEngine should already contain a post type for specialists and populated entries. You need fields for photo, specialty, city, short description, and a link to the profile page or booking button. Create two Listing Templates: first "Specialist Card," second "Specialist Compact." Test both in a regular Listing Grid to confirm that the dynamic fields are not empty.

On the page in Elementor, place Listing Grid and choose "Specialist Card." Configure three columns for desktop, two options for tablet, and one column for mobile if that matches the design. Add JetSmartFilters, for example a specialty checkbox or city select, and assign the JetEngine provider.

Switcher Setup Steps

  1. Add Layout Switcher above Listing Grid, in the same row as the filters or next to sorting.
  2. In the Select a Listing Grid widget field, choose the specialists grid.
  3. Open the first layout item, set Label to "Cards," set Slug to cards, and enable Is Default Layout.
  4. For the second item, set Label to "List," set Slug to list, leave Listing = Default, and set Columns number = 1.
  5. Add a third item through Add Item, set Label to "Compact," set Slug to compact, choose the "Specialist Compact" listing, and specify the column count that fits compact mode.
  6. In Style - Buttons, configure the normal and active states so the current mode is obvious at a glance.
  7. Click Publish or Update, then test the page on the front end.

Validation

Open the page while logged out. First, test the default mode: the cards should display the expected fields. Click "List": the same specialists should switch to one column. Click "Compact": the cards should become denser and, if a separate listing is used, a short AJAX delay may appear. Then apply a specialty filter and repeat the switching.

The setup can be considered working if the filter does not reset the listing, the active layout is visually highlighted, the buttons do not break the responsive layout, the alternative listing does not show empty fields, and switching does not cause the entire page to jump noticeably.

A Commonly Missed Detail

Compact mode should not be just "another grid." If it uses a separate listing, strip out everything unnecessary: large images, long excerpts, secondary badges, and repeating decorative elements. Compact mode exists for fast comparison, not for duplicating the main card. If the difference is not obvious, it is better to keep only two modes and avoid overloading the visitor.

How to Verify the Result on the Page

After setup, do not stop at the point where the buttons can be clicked inside Elementor. Real validation happens on the public-facing site. In the editor, some scripts, styles, and AJAX behavior may differ from what a normal visitor sees. This becomes especially noticeable when caching, JavaScript optimization, filters, lazy load, or custom templates are enabled.

Behavior Check

Test a sequence of actions close to a real user session. Open the page, switch the layout, apply a filter, switch the layout again, click pagination or Load More, then go back to the first mode. If filters use Mixed or Page Reload, also test the URL and the browser back button. If filters use AJAX, make sure the lack of URL changes does not interfere with your intended workflow.

Test not only successful results, but also empty ones. A filter may return no matches. Listing Grid should display a clear message, and the switcher should not make it look as if the content disappeared because of the chosen layout. If the empty state looks poor, adjust the not found message in Listing Grid or the design of the corresponding block.

Responsive Check

On narrow screens, the switcher buttons can become a problem. If labels are long, they wrap, take two lines, and push the filters around. If labels are hidden, the icons need to be self-explanatory. Test tablet and mobile manually: make sure buttons do not overlap, spacing stays usable, the active state remains visible, and list mode does not become excessively long.

There is a mobile trap with list mode: if it is simply one column, it may look almost the same as the default grid but with worse spacing. In some cases, it is better to keep only one mode on mobile through responsive settings, or to make sure the differences are genuinely useful: more text in list view, less in compact view.

Accessibility and Clarity Check

Even if the official documentation does not provide a dedicated accessibility map for Layout Switcher, a basic accessibility check is still required. The active mode should be visually distinct not only by color, but also by the button state itself. Label and icon contrast should be sufficient. Buttons should not be too small. If keyboard navigation matters on the page, test Tab navigation and the theme's focus states.

If you disable labels and leave only icons, add enough surrounding context: a row heading like "Directory View" or a short text description nearby, if the design allows it. Not every user instantly understands the difference between a grid icon and a compact icon. Good UX should not force people to guess.

Troubleshooting Layout Switcher, Listing Grid, JetSmartFilters, and AJAX issues
Troubleshooting starts with the "switcher - Listing Grid" connection, then moves on to default layout, provider, Query ID, AJAX, and cache.

Performance, Cache, and Safe Publishing

The layout switcher affects performance indirectly, through the number of rendered elements, the complexity of listing templates, and the filtering workflow. If the page is already heavy, adding an alternative listing may make the problem worse. If the page was originally built with several visible grids inside tabs, switching to Layout Switcher can do the opposite by simplifying the DOM and making the structure lighter.

Start with the cards. In the Listing Template, do not output everything that exists in the record. Large images, long descriptions, multiple nested listings, complex dynamic fields, and heavy widgets inside every card are all multiplied by the number of items. The switcher does not cancel that multiplier. If twenty cards are displayed, every unnecessary detail is repeated twenty times.

How to Choose the Number of Items

For a dynamic directory, it is better to show a moderate number of items and rely on filters, pagination, or Load More. If you display too many items at once, list mode becomes too long, grid mode becomes too heavy, and switching to an alternative listing slows down noticeably. Let the page's purpose guide the decision: it is usually better for visitors to see a strong initial set and narrow it down quickly than to scroll through a massive feed.

If JetSmartFilters are involved, do not forget about posts number. The documentation for filtering Listing Grid notes that a value that is too low can lead to incomplete results, duplication, or the wrong post counts with Load More and Infinite Scroll. So the item count is not just a design setting. It is also part of the filtering workflow.

Cache and AJAX

Page caching is usually helpful, but dynamic AJAX requests require extra verification. Crocoblock changelog notes include a fix related to preventing AJAX listing requests from being cached by proxies in Listing Grid. That is a useful practical signal: if old results appear after layout switching or filtering, check cache, CDN, JavaScript optimization, and exclusions for dynamic requests.

Do not disable the entire site's cache blindly. First reproduce the issue in a private window, clear the page cache, test without JavaScript minification, then turn settings back on one by one. If the issue appears only after a specific optimization is enabled, look for an exclusion for JetEngine scripts, JetSmartFilters scripts, or the directory page itself.

Publishing Without Risk

Before publishing to the live site, duplicate the page or save an Elementor revision. Then test three states: the default layout, every alternative layout, and the filtered result. If the directory is part of sales, inquiries, or bookings, test the path to the target action as well: the card opens, the button works, and the form or product page is reachable.

Do not publish the switcher as if it were a minor design touch. For visitors, it is a control element. If it breaks the filter, hides cards, or confuses the active state, trust in the directory drops more than it would if the switcher were absent altogether.

Button Design and Active-State Behavior

Layout Switcher has a dedicated styling area, and you should not postpone it if the switcher is going onto a public page. Unlike a decorative block, layout selection buttons communicate the current state of the directory. The user needs to see which mode is active, what can be clicked next, and why the listing changed after the click.

The official instructions show active-state styling through Style - Buttons - Active. In practice, this is one of the most important parts of the setup. If the active button differs only by a faint shade, some visitors will not understand which option is selected. If the active state is too bright, it may compete with card buttons and filters. The balance is this: the switcher should be clearly visible as a tool, but it should not become the page's primary call to action.

How to Choose Labels for a Russian-Language Page

Labels work best when they are short and meaningful. "Grid," "List," and "Compact" are easier to scan than "Grid View," "List View," and "Compact View." The English labels inside the Elementor interface stay as they are, but the public button speaks to the visitor, not to the developer. If the site is fully in Russian, mixing "Grid" with a Russian label looks inconsistent.

For niche directories, you can move away from technical wording. In a travel catalog, "Photos," "Dates," and "Prices" may be a better fit. In a specialist directory, "Cards," "Detailed," and "Compact." In a property catalog, "Gallery," "List," and "Compare." The important thing is that the label describes the visible outcome. If a button says "Prices" but opens a listing where the price is still tiny and hidden, the label creates false expectations.

Do not use long phrases like "Show compact specialist list." On desktop, that stretches the panel; on mobile, it breaks the row. Longer guidance belongs in nearby text or in the section context, while the label itself should stay short.

Icons: When They Help and When They Get in the Way

Icon Library works well for the standard grid/list pair. A grid icon and a list icon are clear to most users, especially when a label is shown next to them. But for a custom layout, the icon may be ambiguous. For example, "Compact" could be represented by short horizontal lines, but some visitors will read that as a standard list. A "Prices" mode might use a currency symbol, but on a site serving multiple countries, that may feel out of place.

When using Upload SVG, keep icons consistent: the same line thickness, the same visual size, and one fill style. Do not mix an outline list icon, a filled grid icon, and a complex decorative SVG for a third mode. That kind of mix looks like a set of random buttons and weakens trust in the interface.

If labels are disabled through the global Labels toggle, check accessibility. Users should be able to understand what the buttons do without reading documentation. If that is not realistic, leave the labels on. An icon can speed recognition, but it should not replace meaning.

Active Button and Focus

The active state should be defined through a combination of signals: background color, text color, border, a light shadow, or a change in weight. Do not rely only on color. On some screens, the difference may be too weak, and some users have limited color perception. A strong active button feels like a selected segment in a control bar: it does not shout, but it clearly says "this is the current mode."

Check hover and focus. Hover helps mouse users; focus helps keyboard users. If the theme or Elementor removes the outline, restore a readable focus state through style settings if available. Do not edit plugin files. For targeted CSS adjustments, it is safer to use the theme's custom CSS, Elementor site settings, or a separate container class, but only if you can see the public markup clearly and can roll the change back quickly.

Design rule: before publishing, ask someone who did not configure the page to open the directory and explain what the buttons do. If they need an explanation, the labels or active state need to be improved.

Implementation Map for a Real Project

Layout Switcher is easier to configure than a full JetEngine directory, but in a real project it often appears on an already complex page. That page may include filters, sorting, cards, queries, images, multiple editors, and cache. That is why it helps to treat the rollout as a small project rather than a quick visual experiment.

Stage 1: Lock Down the Current Working Listing

Before installing the switcher, document which Listing Grid is considered the working one. It should have a clear source, a selected Listing Template, an expected number of records, a tested empty state, and a correct public URL. If the page already includes filters, test one or two typical filter combinations and pagination behavior. This becomes your baseline: something you can return to if the switcher breaks the page.

Do not start the rollout with an alternative listing. First build the simplest possible switcher between the starting grid and list view. That confirms the module is installed, the connection to Listing Grid works, the default layout is selected correctly, the buttons are published, and the basic switching does not break the page.

Stage 2: Build Meaningful View Modes

After the basic check, decide how many layout modes are actually needed. A good implementation plan answers these questions: which mode should be the default, which mode helps with comparison, which mode helps with quick scanning, and which mode should be removed. Do not be afraid to keep only two options. Three clear modes are better than five similar ones.

For each mode, fill in a simple chain: where the setting lives, what the editor enters, what the product changes, what output becomes visible, how to test it, what failure symptom to expect, how to fix it, and what limitation applies. For example, for list mode: the setting is in item Settings, the input is Columns number = 1, the product changes the number of columns, the visible output is cards in a single column, the test is that the same records remain after filtering, the failure symptom is that the appearance does not change, the fix is to check the grid connection and the default layout, and the limitation is that the card may become too wide if the Listing Template itself was never adapted for list view.

That chain is not meant as user-facing documentation, but it matters for the editor. It helps distinguish a product issue from a design issue. If list mode turns into a wide card with too much empty space, that does not necessarily mean Layout Switcher is broken. It may simply mean the Listing Template was designed only for grid view and does not adapt well to a single column.

Stage 3: Add Filters and Complex States

If the directory includes JetSmartFilters, connect them only after the basic switcher is already working. First verify the JetEngine provider. Then check Apply Type. Then, if the page has multiple grids or a custom query, align the Query ID. After that, walk through the sequence "filter - layout - filter - pagination - layout."

Do not change provider, Query ID, active styling, listing template, and cache at the same time. If the result breaks after five changes, you will not know why. Add one layer at a time. This matters especially on projects where the directory is tied to inquiries, appointments, WooCommerce, bookings, or user accounts.

Stage 4: Check Editor Maintainability

Once published, the page will continue to evolve: an editor will add new records, change fields, update the listing template, enable a new filter, or move the block. So keep clear internal names in Elementor structure, do not name layout items with random words, and do not create two nearly identical compact templates. Maintainability is part of quality.

If the project is being handed off to a client or content team, leave them a short ruleset: do not remove the Listing Grid that the switcher is tied to; do not change the slug without testing; do not disable the default layout; do not add a new layout without a public test; do not touch Query ID if the filters already work. It is a simple instruction set, but it prevents most future support requests.

Limitations You Should Know Up Front

A strong guide should address not only capabilities, but also limitations. Layout Switcher solves a narrow, useful problem. It does not become a universal directory system, does not replace filters, does not control the data source, and does not guarantee a faster page. The more honestly you understand its boundaries, the better your rollout will be.

The Switcher Does Not Fix Data Structure Problems

If the custom post type is filled inconsistently, fields vary from record to record, images are missing, and taxonomy is used chaotically, different layout modes will only reveal those issues in new ways. In grid mode, an empty field may go unnoticed; in list mode, it becomes a hole in the card. In compact mode, important context may disappear. So before rollout, validate the data itself: required fields, fallbacks for missing images, title length, and consistent label formatting.

For a specialist directory, that means every record should include specialty, city, and a link. For real estate, neighborhood, price, square footage, and status. For a tour listing, destination, date or period, duration, and a key condition. Layout Switcher will not add any of that data for you.

The Switcher Does Not Replace a Responsive Card

Sometimes a developer tries to solve responsiveness through three layout modes: grid for desktop, list for tablet, compact for mobile. That is the wrong approach if the user has to manually rescue the interface on every device. The base card should already be responsive on its own. Layout Switcher can offer choice, but it should not become a patch for broken responsive design.

Check the card separately at different widths. Images should not stretch, buttons should not fall out of place, long titles should wrap, and dynamic fields should not overlap each other. Only after that does it make sense to add viewing options.

The Switcher Does Not Turn Filters into SEO Pages

If your goal is SEO for filtered archives, what matters is URL behavior, indexation rules, title, description, canonical tags, pagination, and content on archive pages. Layout Switcher does not handle any of that. It can sit on a page with filters, but it does not turn a chosen layout into a separate SEO page. For filter URL behavior, look at Apply Type in JetSmartFilters, URL aliases, and permalink settings if the project needs them.

That is why you should not build a plan where "Grid mode is indexed" and "List mode is indexed" based only on the switcher buttons. For search logic, layout is usually secondary. What matters first is the data source, the filters, the archive structure, the page's textual usefulness, and correct URLs.

The Switcher Should Not Hide the Main Action

On commercial pages, the card often has a target action: open the property, book an appointment, send an inquiry, or go to the product. The switcher should not visually compete with those actions. If its buttons look like the main CTAs, users may click layout controls instead of the card they actually need. Keep the switcher as a calm tool and let the card buttons remain the main action.

Also, do not place the switcher below the grid if the listing is long. Users will only see the buttons after scrolling and may never realize another view mode was available. The best position is above the results or in the top control bar next to sorting.

How to Explain to an Editor What Can Be Changed After Launch

After publication, the page is often managed by someone other than the person who built it. That is why it is important to separate safe editorial changes from changes that require testing. This is especially relevant on Crocoblock sites, where one directory may include a CPT, meta fields, a Listing Template, Query Builder, JetSmartFilters, and Layout Switcher.

What Usually Can Be Changed Safely

An editor can change label text as long as the meaning of the mode stays the same and the slug is untouched. For example, "Cards" could be renamed to "Tiles" if that feels clearer to the audience. The icon can also be replaced with a better one from Icon Library if it does not break the button size. Active colors can be adjusted as well if the contrast improves and the overall design remains consistent.

New records can be added to the directory as long as the required fields are filled in. After adding a record, test all layout modes: the new card should display correctly in grid, list, and compact. This is especially important if records may have long titles, different image proportions, or empty secondary fields.

What Should Be Tested on Staging

Changing Slug, Listing, or Columns number for a public layout, switching the default layout, adding a new alternative listing, changing Query ID, rebuilding the JetSmartFilters provider configuration, or enabling new Load More or Infinite Scroll modes should all go through testing. Each of those changes can alter directory behavior, not just its appearance.

If an editor wants to add a new mode, they should first answer one question: what visitor problem does this mode solve? If there is no clear answer, the mode is unnecessary. If there is, create the listing or column setup first, then test the baseline: default mode, new mode, filters, empty state, mobile, and cache.

How to Document Changes

For a team, it is useful to keep a short changelog for the page in the project's working documentation. There is no need to record every minor color tweak, but changes in logic should be tracked: "added compact layout for the specialist directory," "changed default layout to list," "added Query ID for filters," "disabled Infinite Scroll because of duplicates during filtering." When an issue appears a few months later, that history helps uncover the cause.

This may seem excessive only on the first project. On sites with dynamic directories, it pays off quickly because the issue rarely lives in a single widget. More often it appears at the boundary: the filter is pointed at one provider, the switcher is connected to a different grid, the listing template was changed without testing compact mode, or cache preserved an old AJAX response. Change documentation makes those relationships visible.

Common Issues and How to Troubleshoot Them

Most Layout Switcher problems are caused not by the button itself, but by the chain around it: Listing Grid, default layout, alternative listing, JetSmartFilters, Query ID, AJAX, cache, and theme styles. Troubleshooting works best when you move from simple to complex instead of reinstalling the plugin without a clear reason.

The Select a Listing Grid widget field does not show the needed listing

Symptom: Layout Switcher is added to the page, but the dropdown is empty or does not include the required Listing Grid. A likely cause is that the Listing Grid is not placed on this page, has not been saved yet, exists in a different template context, or is not recognized by the editor.

What to check: add a regular Listing Grid to the same page, choose a listing, and save the page. Refresh Elementor and open the Layout Switcher settings again. If the grid appears, the problem was the page context. If not, check whether JetEngine is active and whether the current editor is compatible with this widget workflow.

The buttons are visible, but the layout does not change

Symptom: Grid/List buttons are visible on the public page, but clicking them does not change the listing. Possible causes include the switcher being attached to the wrong grid, identical settings across the options, no default layout, or styling that hides the difference between modes.

What to check: temporarily keep only two clearly different options, for example the default grid and a list with Columns number = 1. Make sure the correct Listing Grid is selected. Confirm that one option is marked as Is Default Layout. If the difference appears after that, restore styles and extra options one at a time.

The alternative listing loads slowly

Symptom: the default layout switches quickly, but the option using a different listing is noticeably slower. That is expected within reason, because switching listings triggers AJAX loading. It becomes a problem when the delay interferes with browsing.

What to check: reduce the number of items, simplify the alternative Listing Template, optimize images, and remove unnecessary nested widgets. Check whether a heavy custom query is involved. If the delay appears only after enabling a cache plugin or JavaScript optimizer, temporarily disable that specific optimization and look for an exclusion.

The filter works before switching, but not after

Symptom: JetSmartFilters applies the filter to the starting grid, but after selecting another layout the results break or the filter stops affecting the listing. Possible causes include the wrong provider, JetEngine provider not being enabled, a Query ID conflict, or multiple grids on the page.

What to check: in the filter, the This filter for field should be set to JetEngine, and the provider should be enabled in Smart Filters settings. If the page has multiple grids, assign a unique ID and align it between the filter, Listing Grid, and custom query. After making changes, refresh the page and test it on the front end.

Duplicates appear after Load More, or some records disappear

Symptom: when filtering and switching layouts, the item set looks incomplete, records repeat, or pagination counts incorrectly. JetSmartFilters documentation associates these symptoms with posts number, Load More, Infinite Scroll, and custom query behavior.

What to check: make sure posts number in Listing Grid and posts per page in the custom query are not lower than the expected filtered set. Temporarily disable Infinite Scroll and test regular pagination. If the problem disappears, restore incremental loading only after adjusting the item count and query.

The active button is hard to see, or the responsive layout breaks

Symptom: the user cannot tell which layout is selected, the buttons blend into the background, or they wrap awkwardly on mobile. The cause is usually styling, long labels, a weak active state, or a theme conflict.

What to check: configure Style - Buttons - Active so the active state is distinct through color, background, border, or weight. Shorten the labels. If icons without labels are unclear, restore the labels or add a short text like "View." If the theme overrides the button styles, make adjustments through Elementor rather than editing plugin files.

When it is better to roll the setup back

A rollback makes sense when the switcher is not adding clear value and the troubleshooting runs into a complex conflict with filters, cache, or third-party templates. First return to a single Listing Grid without Layout Switcher, confirm the directory works, then decide whether the feature should be reintroduced later on staging. A stable directory without a switcher is better than an unstable one with attractive buttons.

Questions to Resolve Before Rollout

Is this a separate plugin or part of JetEngine?

The official documentation describes the Layout Switcher widget as a feature used together with JetEngine Listing Grid and installed as a separate WordPress plugin from the Crocoblock account. In practical terms, that makes it an add-on module for JetEngine, not a standalone directory system.

Can the switcher be used without Listing Grid?

No, there is no practical point in doing that. The Select a Listing Grid widget field requires an existing Listing Grid on the page. The dynamic listing itself has to work first, and only then should the switcher be added to it.

Why are there symbols in parentheses next to options in the dropdown?

Crocoblock documentation states that the symbols in parentheses next to the options in the selection field are the IDs of specific Listing Grid widgets that Elementor links automatically. That makes it easier to tell several grids apart on the same page.

Do I need a separate Listing Template for List mode?

Not always. If list view differs only in column count or card width, you can leave Listing = Default. A separate listing is needed when you are changing the information mix: removing the image, adding parameters, building a compact card, or shifting the emphasis.

Will Layout Switcher work with JetSmartFilters?

Layout Switcher documentation states that it is compatible with JetSmartFilters. But the filters still need to be configured correctly: provider JetEngine, the provider enabled in Smart Filters settings, the right Apply Type, and Query ID when the page has multiple grids or a custom query.

Why is there a delay when switching to another listing?

If the layout uses a different Listing Template, AJAX loading is triggered. A short delay is expected. If the delay is too long, check the complexity of the listing template, the number of items, the custom query, the images, the cache, and JavaScript optimization.

Should I keep labels on or use only icons?

During setup, it is better to keep labels enabled. On the public page, icons alone can work if their meaning is obvious and the active state is clearly visible. For more specialized modes such as compact or price view, a text label is usually easier to understand.

Is this product suitable for Gutenberg or Bricks?

JetEngine Listing Grid as a tool has implementations for different editors, but the official Layout Switcher page describes an Elementor widget. So for Gutenberg or Bricks, you should not assume the same workflow is available without separately verifying that this exact switcher exists in your stack.

When CrocoBblock Layout Switcher Is the Right Choice

CrocoBblock Layout Switcher is worth using if you already have a working JetEngine Listing Grid, your visitors genuinely need multiple ways to view the same set of results, and your team is ready to carefully test the integration with filters, AJAX, cache, and responsive behavior. It is not a must-have button for every directory, but it is a strong tool for pages where one layout alone does not support every way people make decisions.

The strongest rollout is not simply "add Grid/List," but to design clear modes: visual cards, a detailed list, compact comparison, or an alternative listing built around a specific user decision. At that point, the switcher becomes part of navigation rather than decoration.

Before going live, walk through a short final route: one default layout, one or two meaningful additional layouts, the correct Listing Grid in the selection field, one default item, readable labels/icons, a verified JetSmartFilters provider, a correct Query ID on complex pages, testing after cache, and a clear empty state. If all of that checks out, you can move to the download section and go to the CrocoBblock Layout Switcher download for testing on your own site.

If the directory is simple, one view mode is enough for visitors, and filtering matters more than switching, it is better not to complicate the page. In that case, invest your time in the Listing Template, usable filters, speed, and a clear card design. A strong single layout is often better than a set of options nobody uses.

By OceanTheme.org Editorial Team

 

You are not logged in to post comments.