MLS Import Documentation Aug 7, 2026 · 4 min read

Template overrides in standalone mode

Copy a template into your theme's mlsimport folder to override it, which files exist, and the four filters on the lookup path.

B
Benjamin Levy
Contributor · MLSimport

Standalone mode resolves its front end templates the way WooCommerce does. Copy a template into an mlsimport/ folder in your theme and your copy is used instead of the plugin’s, with no plugin files edited.

The lookup checks the child theme first, then the parent theme, then falls back to the plugin’s bundled templates/ directory.

Before you start

  1. Standalone mode is active. These templates are the standalone front end and are not used on a supported theme.
  2. You are working in a child theme, or a theme you control. An override in a theme you did not write is lost on its next update.
  3. You have read the hooks reference. A hook that does the job is a better answer than a copied template.

Override a template

  1. Find the template you want in the plugin’s templates/ directory.
  2. Create mlsimport/ inside your theme, at wp-content/themes/your-theme/mlsimport/.
  3. Copy the file across, keeping the same filename and the same sub folder if it has one.
  4. Edit your copy.

Expected result: the front end renders your copy. Nothing needs clearing and no setting needs changing, because the lookup runs on every render.

What you can override

  1. single-mlsimport-property.php and archive-mlsimport-property.php, the property pages.
  2. single-mlsimport-agent.php and archive-mlsimport-agent.php, the agent pages.
  3. card.php, card-v2.php and card-v3.php, the three property card designs.
  4. search-form.php, the search form.
  5. parts/agent-box.php, the agent box used inside the property page.
  6. live/single-mlsimport-property-live.php, the single property template used in live mode.
Pro Tip

The card file that renders is the one your design settings selected, so overriding card.php changes nothing on a site set to card style V2 or V3. Check Property card style in the standalone design settings first: V1 uses card.php, V2 uses card-v2.php and V3 uses card-v3.php.

Filters around the lookup

Four filters sit on the resolution path when copying a file is not the right shape of change.

  1. mlsimport_template_name ( string $name ), swap one template for another before the lookup runs.
  2. mlsimport_template_subdir ( string $subdir ), change the folder name your theme uses, which defaults to mlsimport/.
  3. mlsimport_locate_template ( string $path, string $name, string $subdir ), return any absolute path you like, including one from a plugin of your own.
  4. mlsimport_template_include ( string $located, string $template ), the last word on the single property route.

Serving templates from an add-on plugin rather than the theme is the usual reason to use the third one:

add_filter( 'mlsimport_locate_template', function ( $path, $name, $subdir ) {
	$mine = plugin_dir_path( __FILE__ ) . 'mlsimport/' . $name;
	return file_exists( $mine ) ? $mine : $path;
}, 10, 3 );

Headers and footers

The bundled templates call mlsimport_get_header() and mlsimport_get_footer() rather than the WordPress functions directly. They behave identically when the theme has a header.php and stay silent when it does not, which is what keeps block themes without those files from filling the error log with deprecation notices.

Keep those calls in a copied template unless you know the theme ships both files.

Pro Tip

Every copied template stops receiving updates from the moment you copy it. When a bundled template gains a section, a fix or a new hook, your copy does not. Copy the smallest file that achieves the change, prefer a section filter to a whole page template, and write down which files you have overridden so an upgrade has something to check against.

If it does not work

  1. The override is ignored. Check the folder name and the filename character for character, and check you are editing the active theme rather than its parent.
  2. A card change does nothing. The design settings are on a different card style. See the tip above.
  3. The page renders but the styling is gone. Your copy dropped the wrapper classes the bundled stylesheet targets. Copy the original again and edit inside the markup rather than replacing it.
  4. A fatal error after an update. Your copy calls something the plugin has changed. Compare it against the current bundled file.

Frequently asked questions

Do overrides survive a plugin update?

The files do, because they are in your theme. Whether they still work is the question, since they no longer track changes to the bundled version.

Can I override only one part of the property page?

Yes, and it is the better route. The property page is built from sections, and a single section’s markup is replaceable through a filter without touching a template.

Does the folder have to be called mlsimport?

By default yes, and the mlsimport_template_subdir filter changes it if a theme’s conventions need something else.

Do these templates apply in live mode?

Live mode has its own single property template in the live/ folder, and it is overridable by the same rule with the same sub folder in your theme.

  1. Standalone hooks reference
  2. Property card styles V1, V2 and V3
  3. Arranging the single property page
  4. The Design Settings page

Send us the template you are overriding and what you need it to do if the hooks look like they should cover it and do not.

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