Custom Lists
Build focused listing and comment landing pages with ordinary filters, JSON Custom Query, and reusable search parameters.
Overview
Custom Lists create dedicated listing or comment/review pages for a specific visitor intent—for example, highly rated restaurants in one city, current job openings, or recent reviews by the signed-in user.
Create the page through the Joomla or WordPress menu editor, configure the ordinary page filters first, and add JSON Custom Query only when those controls cannot express the remaining filter or order.
Choose an Implementation
Use these options in order of simplicity:
- Page/menu settings for listing type, category, comment type, limits, and ordinary order.
- Custom Parameters copied from a working search or filter URL.
- JSON Custom Query for strict model-aware filtering or ordering.
- Proximity and relative date parameters for search-style landing pages.
Legacy Custom Where / Order remains a separate SQL system for legacy surfaces. A legacy module, widget, or renderer is not automatically converted when you create a modern Custom List page.
Advanced Query
JSON Custom Query
Listing Custom List pages use the Listing schema. Comment/review Custom List pages use the Comment schema. Both supply the authenticated viewer token and current date tokens; neither supplies listing_id or listing_owner_id because a list page is not a listing-detail context.
JSON where narrows the page's publication, access, page-type, menu, and visitor filters. A non-empty JSON order replaces the page order; without JSON order, the page's selected or interactive order remains active. Invalid JSON or an unavailable token fails closed and returns no matches.
Use canonical fields on both CMSs. For example, the listing owner is created_by, including on WordPress; do not use post_author in strict JSON.
Legacy Custom Where / Order
Legacy Custom Where and Custom Order accept controller-specific SQL fragments. They remain available only where the legacy controller exposes them, including legacy Joomla modules, legacy WordPress widgets, and other retained legacy renderers.
Do not paste those values into JSON Custom Query or translate raw table names mechanically. Follow the manual migration guide or the AI-assisted migration workflow. When the SQL uses an unsupported join, subquery, or function, leave the migration explicitly incomplete.
Custom Parameters
Custom Parameters are often the easiest way to reproduce a search or filter result as a landing page:
- Build the desired result on the site using search, filters, and ordering.
- Copy everything after
?from the resulting URL. - Paste it into the Custom Parameters setting for the Custom List menu.
- Remove transient parameters that do not affect the result.
For example, this search URL:
https://demo.jreviews.com/search/search-results?order=rating&dir=2&cat=23&query=all&usematch=1&jr_state=new-york&jr_city=new-york
becomes:
order=rating&dir=2&cat=23&query=all&usematch=1&jr_state=new-york&jr_city=new-york
Set Page Total and Page Limit in the menu when you need a fixed “top 10” style page.
Average-rating parameters
Use rating for the minimum average user rating and editor_rating for the minimum average editor rating:
cat=23&rating=4&editor_rating=4
Proximity Search
Create the desired proximity search on the site, then copy its coordinates and radius from the resulting URL. Maps writes the configured latitude and longitude custom-field names together with jr_radius; those field names are site-specific.
order=distance&jr_radius=5&YOUR_LATITUDE_FIELD=42.3584308&YOUR_LONGITUDE_FIELD=-71.0597732
Replace the two placeholder names with the exact parameter names copied from your working URL. A proximity filter requires numeric latitude and longitude; Maps clamps the radius to its configured maximum. order=distance is available only while an active proximity payload is present.
Date-Based Custom Lists
Search-style Custom Parameters accept these encoded values for date custom fields:
| Comparison | Value |
|---|---|
| Exact date | equal_date_YYYY-MM-DD |
| On or after | higher_date_YYYY-MM-DD |
| On or before | lower_date_YYYY-MM-DD |
| Between two dates | between_date_YYYY-MM-DD_YYYY-MM-DD |
Examples:
jr_eventdate=equal_date_2026-07-19
jr_eventdate=between_date_2026-07-19_2026-07-26
These are URL/search parameters, not JSON date-expression syntax. For JSON comparisons, use the exact safe expressions documented in Safe date values.
Landing Page SEO
Set a page title, heading, visible description, and meta description that match the result intent.
For Joomla, use the Page Display, JReviews, and Metadata tabs in the menu editor. For WordPress, use the Page & SEO settings and the page content area.
Verification
- Confirm the page type and target model.
- Test the menu's ordinary filters before adding JSON.
- Check known included and excluded records.
- Check ordering ties and pagination.
- Test authenticated and anonymous visitors when using
user_id. - Re-test after copying the page or moving the query to another surface; listing-detail tokens are unavailable on Custom List pages.