Houzez Theme Gallery Display Options
The Houzez real estate theme supports multiple gallery display styles for property listings. This guide covers each gallery type, how it works under the hood, and its compatibility status with the External Images plugin.
How Houzez Stores Gallery Images
Houzez stores property gallery images as individual WordPress post meta entries under the key fave_property_images. Each entry is a WordPress attachment ID (an integer). When you upload images through the Houzez property editor, it creates standard WordPress attachments and stores their IDs in this meta key.
External Images stores its gallery data differently – in a serialized array under the _ei_wcgallery meta key. It also creates “fake” WordPress attachment posts for each external image (with the external URL stored as the GUID), so that WordPress attachment functions like wp_get_attachment_image_src() return the correct external URL.
Those fake attachment posts are what let External Images work with almost any theme or plugin that expects a real attachment ID. How External Images Works explains the mechanism in full. The Houzez gallery issue below is the exception, because newer Houzez templates bypass the WordPress attachment layer and read the meta key directly.
Gallery Display Styles
Houzez offers these gallery layouts, selectable via Houzez Options > Property Detail > Property top area:
Gallery v1 (Single Hero Image)
Setting value: v1 Template: property-details/partials/gallery-v1.php
Displays a single large featured image as the hero. When using the PhotoSwipe popup type, hidden gallery images are rendered off-screen for the lightbox popup. When using the built-in Bootstrap modal, gallery images appear in the lightbox modal overlay.
How it reads images: get_post_meta($post->ID, 'fave_property_images', false) – returns an array of attachment IDs, then calls wp_get_attachment_image_src() for each.
Validation gates:
- Skips images where
wp_get_attachment_image_src()returnsfalse
EI compatibility: Requires the fix described in the Known Issue section below. Once fake attachment IDs are present in fave_property_images, this style works because EI’s wp_get_attachment_image_src filter returns the external URL for EI attachments.
Gallery v2 (Featured Image with Overlay)
Setting value: v2 Template: property-details/partials/gallery-v2.php
Similar to v1 – shows a featured image with Houzez property details overlaid on top. Gallery images are hidden and only appear in the popup/lightbox.
How it reads images: get_post_meta($post->ID, 'fave_property_images', false)
Validation gates:
- Skips images where
wp_get_attachment_image_src()returnsfalse
EI compatibility: Same as v1 – requires the fix.
Gallery v3 / v4 (Slider with Thumbnails)
Setting value: v3 or v4 Template: property-details/partials/gallery-v3-4.php
Full-width image slider with thumbnail navigation strip below. This is one of the most popular Houzez gallery styles. It displays all gallery images inline as slider slides.
How it reads images: get_post_meta($post->ID, 'fave_property_images', false)
Validation gates:
- Requires
!empty($images_ids) && count($images_ids)to render the slider at all - Skips images where
wp_get_attachment_image_src()returnsfalse - Reads
wp_get_attachment_metadata()for each image (EI returns dummy metadata for this) - Falls back to featured image only if gallery is empty, or placeholder if no featured image
EI compatibility: Requires the fix. The slider will not render at all if fave_property_images is empty – it falls through to the single-image or placeholder fallback.
Gallery v5 (Variable Width Masonry)
Setting value: v5 Template: property-details/partials/gallery-v5.php (delegates to gallery-variable-width.php)
A masonry/variable-width gallery layout where images display side by side with their natural aspect ratios.
How it reads images: get_post_meta($post->ID, 'fave_property_images', false) (in gallery-variable-width.php)
Validation gates:
- Skips images where
wp_get_attachment_image_src()returnsfalse
EI compatibility: Requires the fix.
Gallery v6 (Mobile-Optimized)
Setting value: v6 Template: property-details/partials/gallery-v6.php
Mobile-optimized layout showing a single featured image with a tap-to-view gallery. Gallery images are hidden and appear in the popup.
How it reads images: get_post_meta($post->ID, 'fave_property_images', false)
Validation gates:
- Skips images where
wp_get_attachment_image_src()returnsfalse
EI compatibility: Requires the fix.
Block Gallery (Grid Layout)
Setting value: Used in the “simple” property detail layout Template: property-details/block-gallery.php
A grid of visible thumbnail images with a “+N more” button. Configurable number of visible images and columns.
How it reads images: get_post_meta($post->ID, 'fave_property_images', false)
Validation gates:
- Skips images where
wp_get_attachment_image_src()returnsfalseOR the URL is empty - Reads
wp_get_attachment_metadata()for srcset generation - Uses
wp_get_attachment_image_srcset()andwp_get_attachment_image_sizes()for responsive images
EI compatibility: Requires the fix. Also note that responsive srcset may not generate for external images since EI’s metadata only contains a full size entry.
Lightbox Modal
Template: property-details/lightbox.php
Not a standalone gallery type – this is the Bootstrap modal popup that appears when clicking gallery images in v1, v2, v3-4, or v6 styles (when not using PhotoSwipe).
How it reads images: get_post_meta($post->ID, 'fave_property_images', false)
Validation gates:
- Calls
wp_get_attachment_metadata($image_id)and skips images where metadata isfalse - This is the strictest check – however, EI hooks
wp_get_attachment_metadataand returns['width' => '0', 'height' => '1000']for EI attachments, so this check should pass
EI compatibility: Requires the fix.
Property Functions Gallery (Archive/Listing Pages)
Template: framework/functions/property_functions.php (line ~432)
Used for gallery display on archive/listing pages and the legacy lightbox popup.
How it reads images: Uses BOTH get_post_meta($post->ID, 'fave_property_images', false) (line 432) AND rwmb_meta('fave_property_images', ...) (line 4336, for the listing modal popup).
Validation gates:
get_post_status($id)– skips if attachment post doesn’t existwp_get_attachment_image_url()must return a truthy value
EI compatibility: The rwmb_meta call at line 4336 works with EI’s existing filter. But the get_post_meta call at line 432 requires the fix.
Known Issue – Gallery Images Not Displaying
Symptom: Gallery images are visible when editing a property in wp-admin, but do not appear on the frontend property page.
Root cause: All Houzez gallery templates read gallery image IDs using get_post_meta($post->ID, 'fave_property_images', false). External Images stores its gallery data in a different meta key (_ei_wcgallery) and was relying on a MetaBox API filter (rwmb_meta) to bridge the gap. However, Houzez updated their templates to use get_post_meta() directly, which bypasses this filter entirely.
What this means: Houzez calls get_post_meta() for fave_property_images and gets an empty array (EI never wrote to that key). Even though EI has the gallery data and has created fake attachments, Houzez never sees the attachment IDs.
Status: Fix in development. The fix will ensure EI writes fake attachment IDs to fave_property_images when saving Houzez properties, and also hooks get_post_metadata at the WordPress level to provide the IDs at runtime for existing properties.
EI’s rwmb_meta bridge still works wherever a theme reads gallery data through the MetaBox API, which is why the archive-page path at line 4336 displays correctly. The frontend property templates broke only because Houzez switched them to raw get_post_meta(), which no plugin filter can intercept. Do not enable Remove Metabox API Filters while diagnosing this, or you will disable the one path that does still work.
Troubleshooting Steps
- Confirm EI data exists: Edit the property in wp-admin – you should see external images in the External Images gallery metabox
- Check EI settings: Go to Dashboard > External Images and ensure “Remove Metabox API Filters” is NOT checked
- Check Houzez settings: Go to Houzez Options > Property Detail and note which “Property top area” style is selected
- Run diagnostics: Install the
ei-houzez-diagnostics.phpplugin (available from support) and visit a property page as an admin to see a detailed diagnostic panel
If none of the above resolves it, the External Images Troubleshooting guide covers the wider set of display problems and their fixes.

Comments