JReviews logo Docs
Menu
Version

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

  1. RATING_VALUE is the overall rating for the rating criteria and will look for results equal or greater than the specified value.
  2. 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 and Page Heading can be found in the Page Display tab when setting up the menu.
  • Page Description can be found in the JReviews tab.
  • Meta Description can be found in the Metadata tab.

WordPress

  • Page Title and Page Heading can be found under the PAGE & 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