MLS Import Documentation Aug 7, 2026 · 8 min read

Building your pages: blocks, shortcodes and Elementor widgets

B
Benjamin Levy
Contributor · MLSimport

Standalone mode ships thirteen page blocks: property grids, sliders, maps, search forms, category tiles, a team directory and a contact form. Each one is available in three places, as a shortcode, as a Gutenberg block and as an Elementor widget, and all three produce identical output.

Pick whichever surface matches how you build pages. There is no feature difference between them.

Before you start

Standalone mode has to be active, and you need at least a few imported properties. Most blocks render nothing at all when there is nothing to show, which looks like a broken block on an empty site.

The thirteen blocks

  1. Property List, a filterable grid with a search bar and pagination.
  2. Search Results, the results page a search form submits to.
  3. Search Form, a standalone search bar you place anywhere.
  4. Half Map, listings beside a live map.
  5. Map with Listings, a map on its own.
  6. Property Slider, a swipeable carousel of listings.
  7. Featured Property, one listing in a large format, in six designs.
  8. List Properties by ID, an explicit hand picked set.
  9. Saved Properties, each visitor’s own saved list.
  10. Category Slider, taxonomy terms as sliding image tiles.
  11. Display Categories, the same tiles as a static grid.
  12. Team Directory, your agent profiles as cards.
  13. Contact Form, a configurable lead form.

Using them as shortcodes

Every block has a shortcode named after it, and every option is an attribute. The shortcode works in any editor, in a widget, and in a template through do_shortcode().

[mlsimport_item_list city="Miami" status="Active" count="12"]

Options you leave out fall back to their defaults, so a bare [mlsimport_item_list] is valid and shows everything.

Using them in the block editor

The blocks sit in their own category in the inserter, grouped under the MLSImport real estate heading. Search the inserter for the block name, drop it in, and the options appear in the sidebar inspector on the right.

Each block renders on the server, so what you see in the editor is what the visitor gets, drawn with your live data rather than a placeholder.

This video builds a home page, a search results page and a map search with these blocks.

Using them in Elementor

The widgets appear under MLSImport Widgets, pinned to the top of the widget panel. Drag one in and its options are on the Content tab.

The listing, agent and form widgets also carry a Style tab with typography, colour, spacing and border controls for the card elements, which the shortcode and Gutenberg versions do not have. That is the one real reason to prefer Elementor for these.

Pro Tip

All three surfaces call the same rendering code, so a page built with shortcodes and a page built in Elementor produce the same markup and read the same design settings. Mixing them on one site causes no inconsistency.

This video builds a home page, a search results page and a map search in Elementor with these widgets.

What the design settings control instead

Blocks decide what to show and how many. Look and feel comes from MLS Import Design Settings: the card style, the brand colour, the map defaults and the property page layout apply everywhere at once.

Two settings deliberately do not reach the blocks. Properties per page and Cards per row apply to the archive pages only, because each block carries its own per page and per row option.

The original listings shortcode

There is also a plain [mlsimport_listings] shortcode that predates the page blocks. It accepts the same filter attributes and renders the same grid.

[mlsimport_listings city="Austin" price_min="200000" beds="3" limit="12"]

Existing pages using it keep working. For new pages, Property List is the same grid with a search bar, pagination and editor controls.

Pro Tip

Multi value attributes take comma lists, on the shortcode and in the block inspectors alike. status="Active,Pending" matches either, and features="private-pool,has-waterfront" requires both, because amenities narrow a search rather than widen it.

All shortcodes at a glance

Shortcode What it shows Details
[mlsimport_item_list] Search bar, results grid and paging Property List
[mlsimport_property_list_filters] Results of a Search Form submit Search Results
[mlsimport_search_form] Search form that sends visitors to a results page Search Form
[mlsimport_half_map] Listings on one side, map on the other Half Map
[mlsimport_map_listings] Map with every match Map with Listings
[mlsimport_content_slider] Carousel of property cards Property Slider
[mlsimport_featured_property id="123"] One large property card Featured Property
[mlsimport_list_by_id ids="12,34"] Hand-picked properties List Properties by ID
[mlsimport_saved] The visitor’s saved properties Saved Properties
[mlsimport_category_slider] City, type or other category tiles in a slider Category Slider
[mlsimport_category_list] The same tiles in a grid Display Categories
[mlsimport_agents_directory] Agent cards Team Directory
[mlsimport_contact_form] Lead form Contact Form
[mlsimport_listings] Older version of Property List Uses limit instead of count

Filter attributes

Property List, Half Map, Property Slider, Map with Listings and [mlsimport_listings] take these filters. Each one limits which properties show.

Attribute Matches Example
listing_type The MLS Property Type (sale, lease, land, commercial) listing_type="Residential Lease"
property_type The MLS sub type (house, condo, townhouse) property_type="Condominium,Townhouse"
status The MLS status status="Active,Pending"
city, state, zip Name as shown on the site city="Austin,Round Rock"
area, county, high_school_district, label Category slug, any of them county="travis"
features Feature slugs, all of them features="private-pool,has-waterfront"
location City, ZIP, address, area or county location="Austin"
keywords Free text keywords="lake view"
price_min, price_max Price range price_max="500000"
beds, baths At least this many beds="3"
sqft_min, sqft_max, lot_min, lot_max Living area and lot, in square feet sqft_min="1500"
year_min, year_max Year built year_min="2010"
garage_min, stories At least this many garage_min="2"
hoa_max, dom_max Maximum HOA fee, maximum days on market dom_max="30"
subdivision, listing_id Exact subdivision name, MLS number listing_id="TB8541851"
list_date_min Listed on or after (YYYY-MM-DD) list_date_min="2026-01-01"
agent Agent post ID agent="123"
orderby price_high, price_low, newest, oldest, newest_edited, oldest_edited, beds_high, beds_low, baths_high, baths_low orderby="newest"

Values are exactly as your MLS sends them, spaces included. To see the values on your site, open the matching dropdown in any Property List search bar. Slugs are in MLSImport Properties under each category.

Rent-only or sale-only pages

Use listing_type. status is Active, Pending and so on, not rent or sale.

  1. Rentals page: [mlsimport_item_list listing_type="Residential Lease" search_fields="location,property_type,price,beds_baths,sort"]
  2. For sale page: [mlsimport_item_list listing_type="Residential,Commercial Sale,Land" search_fields="location,property_type,price,beds_baths,sort"]

When listing_type is not in search_fields, the filter is locked and visitors cannot change it. Add listing_type to the list if you want visitors to switch between types. Half Map works the same way.

The standalone Search Form has no locked filter. To let visitors choose rent or sale there, add the field: [mlsimport_search_form results_url="https://yoursite.com/search-results/" fields="location:half,listing_type:half,price:third,beds_baths:third"]. The results page holds [mlsimport_property_list_filters].

Choosing the search fields

Property List, Half Map and Search Results take search_fields, a comma list in the order you want. Leave it out to show all fields. fields_per_row takes 3 to 6.

The Search Form uses fields instead, with an optional width: location:half. Widths are two_thirds, half, third and quarter.

Type Field keys
Categories property_type, listing_type, status, city, state, zip, area, county, high_school_district, features, label
Ranges and values location, price, beds_baths, sqft, lot, year, list_date, garage, stories, hoa, dom, subdivision, mls_number
Property List and Half Map only keywords, sort

Property page shortcodes

Each part of the single property page is a shortcode: [mlsimport_property_<name>]. Leave out id to use the property being viewed, or add id="1204" to show a set property. Layout is covered in Property page building blocks.

Group Names
Header title, title_bar, price, price_info, status, address, header, subnav, breadcrumbs, share
Details overview, features, description, content, excerpt, tabs, accordion, interior, exterior, structure, utilities, financial, schools, location, listing_info, other
Media property_gallery, featured_image, gallery, gallery_masonry, gallery_masonry_v2, slider_classic, slider_vertical, slider_multi, slider_full, virtual_tour, video, map
Agent and leads agent_card, agent_contact, agent_form, agent_form_sidebar, mobile_agent_bar, schedule_tour, booking
Other calculator, similar, attribution

Example: [mlsimport_property_calculator]. For code-level changes, see the Standalone hooks reference.

Frequently asked questions

Can I use these blocks on a site that is not in standalone mode?

No. They read the standalone property post type and its search index, neither of which is written when the plugin is set to one of the four supported themes. On those themes the theme’s own widgets do this job.

My block shows nothing on the page. What is wrong?

A block that matches no listings renders nothing rather than an empty frame. Check the filter you set on it, then check that properties exist and are published. The category tiles are the other common case, since they show only the terms you explicitly pick.

Do these blocks work with page builders other than Elementor?

Any builder that accepts a shortcode can use every block, which covers most of them. Only Gutenberg and Elementor have native controls.

Will my pages break if I switch page builder later?

Shortcodes survive any switch. Gutenberg blocks and Elementor widgets are stored in their builder’s own format, so moving between the two means rebuilding those pages, exactly as it would for any other block.

  1. Standalone mode: run MLSImport on any theme
  2. The Design Settings page
  3. The Property List block
  4. Elementor PRO compatibility

Send us the page you are building and we will tell you which block arrangement gets you there.

B
About the author
Benjamin Levy
Writes about MLS feeds, IDX compliance, and running real-estate websites on WordPress at scale.
All posts by Benjamin