Source Immo single detail pages are built from modular template parts located inside:
/wp-content/plugins/source-immo/views/single/*_layouts/subs/
Each file inside a subs/ directory represents a specific section of the detail page (header, price, description, contact form, listings, reviews, etc.).
There are two supported customization methods:
Method 1 — Using Shortcodes (Page Builder / WordPress Editor)
Method 2 — Using PHP Template Overrides (Theme-Based Customization)
Both methods rely on the same underlying template parts.
This method allows you to assemble detail page sections directly inside:
The WordPress block editor
Elementor
WPBakery
Or any compatible page builder
[si_listing_part part="..."]
[si_broker_part part="..."]
Additional entities follow the same pattern:
Agencies → [si_agency_part]
Offices → [si_office_part]
Cities → [si_city_part]
part Attribute WorksThe part attribute must match the filename inside:
/views/single/{entity}_layouts/subs/
Example:
[si_listing_part part="header"]
Loads:
/views/single/listings_layouts/subs/header.php
Located in:
views/single/listings_layouts/subs/
Common parts include:
header
header_price
description
rooms
image_gallery
summary
financials
expenses
location
related
open_houses
documents
share
list_navigation
Example usage:
[si_listing_part part="header"]
[si_listing_part part="image_gallery"]
[si_listing_part part="description"]
[si_listing_part part="rooms"]
Located in:
views/single/brokers_layouts/subs/
Common parts include:
presentation
about
specs
rating
cities
stats
contact_form
listings
reviews
list_navigation
Example usage:
[si_broker_part part="presentation"]
[si_broker_part part="contact_form"]
[si_broker_part part="reviews"]
Always use the Shortcode widget/block (Elementor Shortcode widget, etc.).
Do not insert shortcodes inside text blocks that auto-escape HTML.
Avoid wrapping shortcodes in containers that alter output processing.
If output appears escaped or malformed, verify the correct widget type is used.
Use shortcodes when:
You want drag-and-drop flexibility
You prefer visual layout editing
You are assembling landing-style detail pages
You do not need structural PHP changes
For full layout control, structural markup changes, or long-term theme integration, use the Source Immo templating system.
This method allows you to:
Override entire layout files (e.g., standard.php)
Override individual subs/ template parts
Restructure layout using custom HTML
Implement grid systems, sidebars, tabs, etc.
For full technical details on how the template override system works, including resolution order and directory structure, refer to:
That article explains:
The override lookup hierarchy (child → parent → plugin)
How to mirror the directory structure
Best practices for safe customization
Update-safe implementation
Use PHP overrides when:
You need structural HTML changes
You want full markup control
You are developing a custom theme
You require advanced layout logic
You want long-term maintainability
| Use Case | Recommended Method |
|---|---|
| Simple section arrangement | Shortcodes |
| Drag-and-drop page builder control | Shortcodes |
| Advanced grid or sidebar layout | PHP override |
| Custom markup control | PHP override |
| Long-term theme-level customization | PHP override |
All single detail pages are composed of modular template parts stored in:
/views/single/{entity}_layouts/subs/
You can either:
Assemble them using shortcodes (Method 1), or
Override templates via your theme (Method 2)
Both approaches are fully compatible with the Source Immo architecture and allow flexible, update-safe customization.