Custom Lists
Learn how to create user intent optimized landing pages that delight your site visitors.
Overview
You can use knowledge about your community, keywords research, and analytics information to create targeted pages that provide users the information they want straight from a search engine search.
Examples of these pre-defined landing pages could be:
- Top 10 restaurants in New York
- Open software engineering job offers in Boston
- Available rooms for rent in London
- Best movies starring Ryan Reynolds
Pages like this are great for SEO because they take into account the user's search intent. And the good news is that it's extremely easy to implement them with JReviews.
Custom lists are available for both listings and reviews. They can be created through menus so you can build dedicated landing pages. You can also create custom lists using shortcodes, listings and reviews Joomla modules and WordPress widgets.
Implementations
Custom Parameters
Creating landing pages with custom parameters is just a matter of getting the results you want on your site via search or filtering. Then copying the search parameters from the URL into the Custom Parameters
setting in the Custom Lists
menu.
Yes. It's really that easy 🤯
Custom parameters can also be used in listings shortcodes, modules and widgets.
Using the demo site for the first example "Top 10 Restaurants in New York", we use the advanced filter module in hotels to search for listings in New York, New York. And then sort the listings by highest user rating.
The resulting URL is:
https://demo.jreviews.com/search/search-results?order=rating&dir=2&cat=23&query=all&usematch=1&filter=192&jr_state=new-york&jr_city=new-york
Simplifying Custom Parameters
To use the search URL above in Custom Parameters
in the Custom List
menu, we only need the query
part of the URL, which is everything that comes after the ?
:
order=rating&dir=2&cat=23&query=all&usematch=1&filter=192&jr_state=new-york&jr_city=new-york
Even this can be further simplified by removing the filter
parameter which is not needed to retrieve the correct results. So we end up with:
order=rating&dir=2&cat=23&query=all&usematch=1&jr_state=new-york&jr_city=new-york
Since we only want the top 10 results, set both Page Total
and Page Limit
to 10 in the menu settings.
Parameters with Rating Criteria
It's also possible to add rating criteria filtering to custom parameters. For example, to list Hotels in New York with an average user rating of 4 and higher, for both Location and Pricing criteria the URL would look like this:
http://demo.jreviews.com/search/search-results?cat=23&rating[]=4,4&rating[]=4,6
The resulting value for Custom Parameters
setting then becomes:
cat=23&rating[]=4,4&rating[]=4,6
The equivalent for editor ratings is:
cat=23&editor_rating[]=4,4&editor_rating[]=4,6
The notation for the rating criteria filtering requires 2 values, the rating and the rating criteria ID:
rating[]=RATING_VALUE,RATING_CRITERIA_ID
RATING_VALUE
is the overall rating for the rating criteria and will look for results equal or greater than the specified value.RATING_CRITERIA_ID
is rating criteria ID which can be found in the Listing Type.
Custom Where
This is the original method implemented in JReviews for Custom Lists, and it provides direct access to the database query's WHERE
statement.
Custom Parameters are easier to use, but this method can prove to be quite powerful if you have some basic SQL knowledge to build database queries.
You can use Custom Parameters, Custom Where and Custom Order settings together for even more control.
With Core Fields
Listings submitted by the currently logged in user
Should be shown only to logged in users.
Joomla
Listing.created_by = {user_id}
WordPress
Listing.post_author = {user_id}
More listings by the same user
Useful in listings Joomla module and WordPress widget
Joomla
(Listing.id != {listing_id} AND Listing.created_by = (SELECT created_by FROM #__content WHERE id = {listing_id}))
WordPress
(Listing.ID != {listing_id} AND Listing.post_author = (SELECT post_author FROM #__posts WHERE ID = {listing_id}))
Match the current detail page
Useful if you want to display some parts of the listing detail page separately in a module or widget.
Listing.id = {listing_id}
Listings that contain a specific keyword in the title
Joomla
Listing.title LIKE '%keyword%'
WordPress
Listing.post_title LIKE '%keyword%'
Featured Listings
Field.featured = 1
With Custom Fields
Single select and radiobutton fields
Use the field option value and surround it in asterisks.
Field.jr_brand = '*canon*'
Multiple select and checkbox fields
Field.jr_brand = '%*canon*%'
To match more than one value:
(Field.jr_brand LIKE '%*canon*%' AND Field.jr_brand LIKE '%*sony*%')
Text field
Field.jr_zipcode = '02115'
Numeric field
Field.jr_price > 999
Field.jr_price BETWEEN 100 AND 1000
Non-empty field
Show listings with non-empty values for brand.
Field.jr_brand != ''
With Dates
Events happening today and later
Field.jr_eventdate >= DATE(NOW())
Events for this month
MONTH(Field.jr_eventdate) = MONTH(CURDATE())
Listings submitted this month
MONTH(Listing.created) = MONTH(CURDATE())
For WordPress use Listing.post_date
.
Listings submitted in the past 30 days
Listing.created >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY)
For WordPress use Listing.post_date
.
For more examples, see the full Custom Where documentation.
Custom Order
The custom order setting directly changes the database query's ORDER BY
statement.
JReviews already comes with plenty of sorting options, but if you insist on being creative, you can do that too.
Order by highest price ascending
Field.jr_price ASC
Order by highest price descending
Field.jr_price DESC
Order by featured status, then alphabetically
Joomla
Field.featured DESC, Listing.title
WordPress
Field.featured DESC, Listing.post_title
Order by number of photos
Totals.photo_count DESC
Proximity Search
When you perform a proximity search for restaurants in Boston you get a search query that looks like this:
order=distance&dir=2&cat=24&query=all&jr_radius=5&jr_latitude=42.3584308&jr_longitude=-71.0597732
The address field can be excluded because only the coordinates are needed for proximity searches. You can also adjust the radius and order parameters.
This can be used in Custom Parameters for landing pages, modules, widgets and shortcodes.
Events this week in Boston
jr_eventdate=week&jr_radius=5&jr_latitude=42.3584308&jr_longitude=-71.0597732
Date-Based Custom Lists
When it comes to dates and custom parameters, you can also create dynamic pages that retrieve results based on a relative time period, rather than using fixed dates.
The following values are valid for use with date custom fields:
Period | Value |
---|---|
Last 7 days | -7 |
Last 30 days | -30 |
Today | today |
Today and after | future |
This Week | week |
This Month | month |
Next 7 days | +7 |
Next 30 days | +30 |
After a specific date | higher_date_YYYY-MM-DD |
Below you can find a few examples to get you started:
All events this week
jr_eventdate=week
Events this month
jr_eventdate=month
Events in the next 7 days
jr_eventdate=+7
Events after 2020
jr_eventdate=higher_date_2020-01-01
Of course you are not limited to just using a date field for filtering. This can be combined with other search criteria as well.
Events this week in Boston
jr_eventdate=week&jr_radius=5&jr_latitude=42.3584308&jr_longitude=-71.0597732
Landing Page SEO
Regardless of the implementation you choose, it's important to optimize the landing page for search engines by setting the page title, heading, and description.
Joomla
Page Title
andPage Heading
can be found in thePage Display
tab when setting up the menu.Page Description
can be found in theJReviews
tab.Meta Description
can be found in theMetadata
tab.
WordPress
Page Title
andPage Heading
can be found under thePAGE & SEO SETTINGS
heading- To set the page description and meta description, write your text in the content area of the WordPress page used to create this menu.
Database Columns
Custom Where and Custom Order use is not limited to custom fields. You can also use it with many other table columns, some of which are listed below.
Column | Joomla | WordPress |
---|---|---|
Listing ID | Listing.id | Listing.ID |
Listing title | Listing.title | Listing.post_title |
Creation date | Listing.created | Listing.post_date |
Modified data | Listing.modified | Listing.post_modified |
User ID | Listing.created_by | Listing.post_author |
Number of views | Listing.hits | PostView.meta_value |
Joomla article ordering | Listing.ordering | NA |
Featured Status | Field.featured | Field.featured |
Average user rating | Totals.user_rating | Totals.user_rating |
Average user rating (bayesian) | Totals.user_rating_rank | Totals.user_rating_rank |
Number of user ratings | Totals.user_rating_count | Totals.user_rating_count |
Average editor rating | Totals.editor_rating | Totals.editor_rating |
Average editor rating (bayesian) | Totals.editor_rating_rank | Totals.editor_rating_rank |
Number of editor ratings | Totals.editor_rating_count | Totals.editor_rating_count |
Number of media items | Totals.media_count | Totals.media_count |
Number of photos | Totals.photo_count | Totals.photo_count |
Number of videos | Totals.video_count | Totals.video_count |
Number of attachments | Totals.attachment_count | Totals.attachment_count |
Number of audio | Totals.audio_count | Totals.audio_count |