# Introduction

## Introduction to CREA DDF®

CREA created the Data Distribution Facility (DDF®) to enable CREA’s members to easily disseminate MLS® listing content to multiple websites, and to ensure that MLS® listing content that is displayed on these websites is accurate, up to date, and uses CREA’s trademarks correctly.

Members can register at RealtorLink® to receive a data feed for their National Shared Pool and Member Websites. After registering for a data feed, Members will need to prepare their sites to receive the data.

#### National Shared Pool Module

Participants can contribute their listings to a national data pool and receive a feed from that pool to display all other participants’ listings on their websites. Participants can filter the data feed they receive based on objective criteria. Participants can also choose to contribute their listings to a data feed made available for display on participating franchisors’ websites.

#### Member Website Feed

Participants can use this module to receive a data feed of their listings to display on their own website in order to track the success of their website as a marketing tool.

## Introduction to RealtyPress Premium

RealtyPress Premium is an advanced real estate WordPress CREA DDF® plugin, allowing you to turn any WordPress website or blog into a fully functional CREA DDF® connected real estate listing website. This plugin is ideal for Canadian REALTORS®, Agents, Brokers and Real Estate Agencies looking to add their listings to their website without having to manually enter or update listing data on a regular basis.

After installing and configuring RealtyPress Premium, listing data is automatically imported to your local WordPress database from the CREA DDF® (Data Distribution Facility) and is updated every 24 hours. Sold listings are removed, changed listings are updated, and new listings are imported with every update, giving you a truly hands free real estate listing website.

## Introduction to RealtyPress Data Sync

RealtyPress on activation schedules a CREA DDF® data feed synchronization to run daily.

RealtyPress by default utilizes the WP-CRON (WordPress Cron) to schedule and trigger data feed synchronizations with CREA DDF® servers. Unix Cron is also available and the better method of scheduling and triggering syncs.

#### WP-CRON (WordPress Cron)

WP-CRON is a web-based system and can only run when someone visits the site. Therefore, when someone navigates to your WordPress site, WP-CRON checks to see if any scheduled tasks are due to be run. Ultimately this can be the downfall of WP-CRON, if your site receives less than one visitor per day the WP-CRON schedule will not be checked for due tasks.

#### UNIX CRON

CRON is a time-based job scheduler in Unix-like computer operating systems. CRON is used to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration. Using a unix CRON fixes the downfalls with WordPress CRON and allows you to trigger the WordPress Cron job to run at it's scheduled interval rather than relying on user visits to trigger your CRON job.

We recommend using UNIX CRON if available.

# Getting Started

## Requirements

RealtyPress Premium requires the following minimum server requirements.

- WordPress 3.9 or higher
- PHP 5.3.0 or higher
- MySQL 5.0 or higher
- CURL v7.19.7 or higher
- mod_rewrite Apache Module

## Installation

1. Go to Plugins » Add New.
2. Click on the Upload Plugin button.
3. Click the Choose File button and select the RealtyPress plugin zip file downloaded after purchasing RealtyPress, then click Install Now.
4. Once complete click the Activate plugin link.

## License Activation

Now that RealtyPress Premium has been installed we're ready to activate your license.

1. Go to RealtyPress » License.
2. Enter your license key into the License Key text box and click Activate License.

If activation was successful the system will state the license is active and show the license expiry date, as well as the option to deactivate the license should the need arise.

# RealtyPress DDF® and Sync Setup

## Create a DDF feed at RealtorLink

When setting up your CREA DDF® Data Feed you will be guided by the DDF® Data Feed Wizard.

1. Go to the DDF® web application at http://tools.realtorlink.ca/Distribution/ click on the Data Feed icon to get to the Data Feeds page. You will be prompted to login first if you are not already.

2. On the "Data Feeds" Page, click on the "Add a Data Feed" button to go to the DDF® Data Feed Wizard.

3. You will be presented with a guided set of steps to help you create your CREA DDF® Data Feed. First we need to choose the type of CREA DDF® Data Feed we would like to create.

National Shared Pool - National Shared Pool as a Data Feed Type gives you access to thousands of listings that have been contributed by Brokerage Owners across the country, you can filter those listings by boards, property types, postal codes, price, sale or rent, etc. This is the most common selection, be sure not to set your filters appropriately so you are not pulling more listings than your server can handle. Most users of RealtyPress Premium filter by their board.

Member Website Feed - My Listings as a Data Feed Type gives you access to all the Listing Content that belongs to you. Choose this selection if you want only your listings to appear on your site.

Member Website Feed - One or More Offices as a Data Feed Type allows Brokerage Owners and Salespeople, with their Brokerage Owner permission, to pull a feed containing all the listing content belonging to one or more offices in their Brokerage.

4. Now that we’ve created the feed we need to identify who will operate the Data Feed. Select the "I will not be engaging a 3rd Party Technology Provider to operate my Data Feed." radio button.

5. Next we’ll provide the Technical Contact Information for your Data Feed. Your contact information should already be filled out, if not provide the requested details.

6. We now need to provide the URL of the website that will be connecting to the CREA DDF® Data Feed. This will be the url of the site you have RealtyPress Premium installed on.

7. We’re ready to filter our feed, select the "I want to use filters to limit the listings provided by the Data Feed" radio button.

8. Set the appropriate filters to customize the listing content delivered in your Data Feed to meet your needs, most realtors simply choose their board, but this depends on your needs. Once filters are set click the "Click to review your Data Feed before Saving it" button.

9. Review the Data Feed Summary of your CREA DDF® Data Feed settings for errors, and read the Data Distribution Facilities Terms of Use. When you’ve finished reviewing the Data Feed Summary and Terms of Use, click the "Click Here to Agree to the Terms of Use and Save your Data Feed" button.

Your feed has been created. The username and password will be emailed to the email address specified in the "Technical Contact Information" email field in number of 5 of this guide.

Feeds are not immediately live, CREA does give a propagation time of up to 24 hours.
In our experience it's usually active within a few hours of creation.

If you have specific questions regarding your CREA DDF® Data Feed, please contact CREA member support:

1-888-237-7945
support@crea.ca

## Configure RealtyPress DDF® Data Sync

1. Go to RealtyPress » CREA DDF® Data.
2. Select Live from the Connection Type dropdown.
3. Enter the DDF® Username and Password issued when you created your data feed at RealtorLink and click the Save Changes button. Upon saving your credentials will be tested to ensure a successful connection can be established. The results of the connection test will be displayed at the top of the screen.
4. If the connection test came back successful enable the CRON job found found in RealtyPress » CREA DDF® Data » DDF® Sync Options tab. If the connection was not successful check step 2 and repeat step 3.

## Configure RealtyPress CRON (scheduler)

RealtyPress by default does not enable the sync cron job. You must go to RealtyPress » CREA DDF® Data » DDF® Sync Options tab and check the CRON Enabled check box and save the changes.

RealtyPress on activation schedules a CREA DDF® data feed synchronization to run daily. RealtyPress by default utilizes the WP-CRON (WordPress Cron) to schedule and trigger data feed synchronizations with CREA DDF® servers. Unix Cron is also available and the better method of scheduling and triggering syncs.

# Administration

### General Options

The general options page holds settings used across RealtyPress Premium.

#### General » General

Manage general options.

#### General » Analytics

Manage analytics options.

#### General » Contact

Manage contact form options.

#### General » Social

Manage social options.

#### General » API Keys

Manage API keys.

### CREA DDF® Data Options

The DDF® Data Sync Page allows you modify the CREA DDF® settings.

#### CREA DDF® Data » DDF® Connections Tab

Manage your CREA DDF®connection details.

#### CREA DDF® Data » DDF® Sync Options Tab

Manage RealtyPress Cron options and CREA DDF®syncing.

### Appearance Options

The DDF® Data Sync Page allows you modify the CREA DDF®settings.

#### Appearance » Theme Tab

Manage theme appearance options

#### Appearance » Listing Results Tab

Manage listing results appearance options

#### Appearance » Single Listing Tab

Manage single listings appearance options

### System Options

The system page is where you access system information, configure RealtyPress libraries, use debug tools, and view logs.

#### System » System

View and download system report..

#### System » Libraries

Manage RealtyPress libraries.

#### System » Debug

RealtyPress debugging options.

#### System » Logs

View RealtyPress CREA DDF® sync logs

### License Options

The license page is where you manage your RealtyPress Premium license.

### Support Options

The support page is your go to place when you're having issues or just have questions.

#### Support » Support Tab

RealtyPress support options.

#### Support » Documentations Tab

RealtyPress Premium documentation.

# Shortcodes

### What's a Shortcode?

In short (no pun intended), WordPress shortcodes are special tags that allow users too quickly and easily pull bits of predefined functionality into their pages and posts.

### Listing Results | Shortcode

The [rps-listings] shortcode allows you to embed a custom listing result, in grid, list, or map view, with or without filtering, headers, etc. This is the most powerful shortcode in RealtyPress and contains advanced filtering capabilities.

Options Available

view style show_header show_filters show_look_box show_views show_sort show_per_page agent_id office_id property_type building_type transaction_type street_address city province postal_code community_name neighbourhood bedrooms bathrooms price open_house description

#### KEEP IN MIND!

Shortcode filtering options can be used in conjunction create advanced filters.
The example below will display Single Family homes located in Toronto, containing 3-6 Bedrooms, 4-6 Bathrooms and are priced between $500,000 to $750,000.

    example: [rps-listings city="Toronto" property_type="Single Family" price=500000,750000 bedrooms="3,6" bathrooms="4,6"]

##### view (optional)

Specify result view to use for this listing result.

Values: grid / list / map
Default: Set value in Appearance=>Listing Results, if no value has been set than grid is used.

    example: [rps-listings view=map]

##### style (optional)

Specify page layout to use for use for this listing result.

Values: full-width / sidebar-right / sidebar-left
Default: full-width

    example: [rps-listings style=sidebar-right]

##### show_header (optional)

Specify whether to display the result header above the results. This option hides, posts per page, sort, and filtering options.

Values: true / false
Default: true

    example: [rps-listings show_header=false]

##### show_filters (optional)

Specify whether to display filter forms with the results, allowing users to further refine their search.

Values: true / false
Default: true

    example: [rps-listings show_filters=false]

##### show_look_box (optional)

Specify whether to display a search box allowing searches by specified area above mapped results. This option only applies to the map result view.

Values: true / false
Default: true

    example: [rps-listings show_look_box=false]

##### show_views (optional)

Specify whether to display result view options, allowing users to switch from grid, list, or mapped result views.

Values: true / false
Default: true

    example: [rps-listings show_views=false]

##### show_sort (optional)

Specify whether to display sorting options, allowing users to sort the results.

Values: true / false
Default: true

    example: [rps-listings sort=false]

##### show_per_page (optional)

Specify whether to display listings per page options, allowing users to select the number of listings to show per page. This option only applies to grid and list result views.

Values: true / false
Default: true

    example: [rps-listings sort=false]

##### agent_id (optional)

To retrieve listings for a specific agent enter the Id of the agent in the agent_id option. Agent Id is retained if user submits filtering options in the listings results filter form.

Values: Agent id's can be found under "Listings" in your WordPress admin in brackets after the agent name.

    example: [rps-listings agent_id=12598]

##### office_id (optional)

To retrieve listings for a specific office enter the Id of the office in the office_id option. Office Id is retained if user submits filtering options in the listings results filter form.

Values: Office id's can be found under "Listings" in your WordPress admin in brackets after the office name.

    example: [rps-listings office_id=849547]

##### property_type (optional)

To retrieve listings with a specific property type enter the property type in the property_type option.

Values: Agriculture / Business / Industrial / Multi-Family / Office / Other / Retail / Single Family / Vacant Land

    example: [rps-listings property_type="Single Family"]

##### building_type (optional)

To include listings with a specific building type enter the building type in the property_type option.

Values: Apartment / Commercial Apartment / Commercial Mix / Duplex / Fourplex / Garden Home / House / Manufactured Home / Manufactured Home/Mobile / Manufacturing / Mobile Home / Modular / Multi-Family / Industrial / Multi-Tenant Industrial / No Building / Offices / Other / Parking / Recreational / Residential Commercial Mix / Retail / Row / Townhouse / Special Purpose / Triplex / Two Apartment House / Unknown / Warehouse

    example: [rps-listings building_type="Apartment"]

##### transaction_type (optional)

To retrieve listings with a specific transaction type enter the transaction type in the transaction_type option.

Values: For Sale / For Lease / For Rent

    example: [rps-listings transaction_type='For Sale']

##### street_address (optional)

To retrieve listings for a specific street enter a partial street name or street address in the street_address_option.

    example: [rps-listings street_address='348 Waterloo']

##### city (optional)

To retrieve listings for a specific city enter the city in the city option.

You can include more than one value, by comma separating the values.

    example: [rps-listings city='Toronto']

##### province (optional)

To retrieve listings for a specific Ontario enter the province in the province option.

    example: [rps-listings province=Ontario]

##### postal_code (optional)

To retrieve listings for a specific postal code enter the postal code in the postal code option. The postal_code options allows the use of wildcards "*" in postal codes.

    example: [rps-listings postal_code="T8H*,T8J*"]

##### community_name (optional)

To retrieve listings for a specific community enter the name of the community in the community option.

You can include more than one value, by comma separating the values.

    example: [rps-listings community_name="Old Toronto"]

##### neighbourhood (optional)

To retrieve listings for a specific neighbourhood enter the name of the neighbourhood in the neighbourhood option.

You can include more than one neighbourhood, by comma separating the values.

    example: [rps-listings neighbourhood="Spring Ridge,Stoney Creek"]

##### bedrooms (optional)

To retrieve listings for a specific number of bedrooms or range of bedrooms, enter comma separated values in the bedrooms option.

Values: The first comma separated value is the min number of bedrooms the second is the max, if you would like a fixed number of bedrooms both values should be the same.

    example: [rps-listings bedrooms=3,4]

##### bathrooms (optional)

To retrieve listings for a specific number of bathrooms or range of bathrooms, enter comma separated values in the bathrooms option.

Values: The first comma separated value is the min number of bathrooms the second is the max, if you would like a fixed number of bathrooms both values should be the same.

    example: [rps-listings bathrooms=2,3]

##### price (optional)

To retrieve listings for a price range, enter comma separated values in the price option. The first comma separated value is the min price, the second is the max price.

Values: The first comma separated value is the min price of a listing the second is the max. Do not enter commas in your price or a $ sign, numeric values only.

    example: [rps-listings bathrooms=2,3]

##### open_house (optional)

To retrieve only listings with upcoming open house, set the open_house option to "true".

Values: true / false
Default: false

    example: [rps-listings open_house=true]

##### description (optional)

To retrieve listings for a specific keyword in the description enter the text you would like to search for in the description option. You can include more than one description phrase or word, by separating multiples with a "|" character. This returns a result consisting on only listings found with a description containing the specified description(s). Description is retained if user submits filtering options in the listings results filter form.

    example: [rps-listings description="foreclose,bankruptcy,distress"]

### Listing Carousel | Shortcode

The [rps-listing-carousel] shortcode allows you to embed a listing carousel showing a single or multiple listings simultaneously. Listings can be retrieved by and agent id or office id.

title agent_id office_id property_type building_type transaction_type street_address city province postal_code community_name neighbourhood bedrooms bathrooms price open_house description style num_slides min_slides max_slides move_slides pager_type auto_rotate auto_controls speed captions class

#### KEEP IN MIND!

Shortcode filtering options can be used in conjunction create advanced filters.
The example below will display Single Family homes located in Toronto, containing 3-6 Bedrooms, 4-6 Bathrooms and are priced between $500,000 to $750,000.

    example: [rps-listings city="Toronto" property_type="Single Family" price=500000,750000 bedrooms="3,6" bathrooms="4,6"]

##### title (optional)

Specify an optional title for the carousel which is displayed in a carousel header left aligned.

Default: empty and no title or carousel header is shown.

    example: [rps-listing-carousel title='My Recent Listings']

##### agent_id (optional)

To include listings for a specific agent enter the Id of the agent in the agent_id option.

Values: Agent id's can be found under "Listings" in your WordPress admin in brackets after the agent name.

    example: [rps-listing-carousel agent_id=12598]

##### office_id (optional)

To include listings for a specific office enter the Id of the office in the office_id option.

Values: Office id's can be found under "Listings" in your WordPress admin in brackets after the office name.

    example: [rps-listing-carousel office_id=849547]

##### property_type (optional)

To include listings with a specific property type enter the property type in the property_type option.

Values: Agriculture / Business / Industrial / Multi-Family / Office / Other / Retail / Single Family / Vacant Land

    example: [rps-listing-carousel property_type="Single Family"]

##### building_type (optional)

To include listings with a specific building type enter the building type in the property_type option.

Values: Apartment / Commercial Apartment / Commercial Mix / Duplex / Fourplex / Garden Home / House / Manufactured Home / Manufactured Home/Mobile / Manufacturing / Mobile Home / Modular / Multi-Family / Industrial / Multi-Tenant Industrial / No Building / Offices / Other / Parking / Recreational / Residential Commercial Mix / Retail / Row / Townhouse / Special Purpose / Triplex / Two Apartment House / Unknown / Warehouse

    example: [rps-listing-carousel building_type="Apartment"]

##### transaction_type (optional)

To include listings with a specific transaction type enter the transaction type in the transaction_type option.

Values: For Sale / For Lease / For Rent

    example: [rps-listing-carousel transaction_type="For Sale"]

##### street_address (optional)

To retrieve listings for a specific street enter a partial street name or street address in the street_address_option.

    example: [rps-listings street_address='348 Waterloo']

##### city (optional)

To include listings for a specific city enter the city in the city option.

You can include more than one value, by comma separating the values.

    example: [rps-listing-carousel city="Toronto"]

##### province (optional)

To include listings for a specific province enter the province in the province option.

    example: [rps-listing-carousel province="Ontario"]

##### postal_code (optional)

To include listings for a specific postal code enter the postal code in the postal code option. The postal_code options allows the use of wildcards "*" in postal codes.

    example: [rps-listing-carousel postal_code="T8H*,T8J*"]

##### community_name (optional)

To include listings for a specific community enter the name of the community in the community option.

You can include more than one value, by comma separating the values.

    example: [rps-listing-carousel community_name="Old Toronto"]

##### neighbourhood (optional)

To include listings for a specific neighbourhood enter the name of the neighbourhood in the neighbourhood option.

You can include more than one neighbourhood, by comma separating the values.

    example: [rps-listing-carousel neighbourhood="Spring Ridge,Stoney Creek"]

##### bedrooms (optional)

To include listings for a specific number of bedrooms or range of bedrooms, enter comma separated values in the bedrooms option.

Values: The first comma separated value is the min number of bedrooms the second is the max, if you would like a fixed number of bedrooms both values should be the same.

    example: [rps-listing-carousel bedrooms=3,4]

##### bathrooms (optional)

To include listings for a specific number of bathrooms or range of bathrooms, enter comma separated values in the bathrooms option.

Values: The first comma separated value is the min number of bathrooms the second is the max, if you would like a fixed number of bathrooms both values should be the same.

    example: [rps-listing-carousel bathrooms=2,3]

##### price (optional)

To include listings for a price range, enter comma separated values in the price option. The first comma separated value is the min price, the second is the max price.

Values: The first comma separated value is the min price of a listing the second is the max. Do not enter commas in your price or a $ sign, numeric values only.

    example: [rps-listing-carousel bathrooms=2,3]

##### open_house (optional)

To include only listings with upcoming open house, set the open_house option to "true".

Values: true / false
Default: false

    example: [rps-listing-carousel open_house=true]

##### description (optional)

To retrieve listings for a specific keyword in the description enter the text you would like to search for in the description option. You can include more than one description phrase or word, by separating multiples with a "|" character. This returns a result consisting on only listings found with a description containing the specified description(s). Description is retained if user submits filtering options in the listings results filter form.

    example: [rps-listings description="foreclose,bankruptcy,distress"]

##### style (optional)

Specify the style of the carousel to load.

Values: horizontal / vertical
Default: horizontal

    example: [rps-listing-carousel style=vertical]

##### num_slides (optional)

Specify the max number of slides in the carousel.

Default: 24

    example: [rps-listing-carousel num_slides=50]

##### min_slides (optional)

Specify the minimum number of slides to show simultaneously. The carousel is responsive and will adjust number of slides based on the users screen size. This value should be as small as possible to cater to mobile devices.

Default: 1

    example: [rps-listing-carousel min_slides=2]

##### max_slides (optional)

Specify the maximum number of slides to show simultaneously. The carousel is responsive and will adjust number of slides based on the users screen size. This value should be the ideal number of slides to be displayed simultaneously.

Default: 4

    example: [rps-listing-carousel max_slides=6]

##### move_slides (optional)

Specify the number of slides to advance when the carousel cycles. You can move one slide at a time or multiple.

Default: 1

    example: [rps-listing-carousel move_slides=1]

##### pager (optional)

Specify whether a pager should be displayed on the carousel. Valid values include true or false.

Values: true / false
Default: false

    example: [rps-listing-carousel pager=true]

##### pager_type (optional)

Specify the style of pager to use if pager is enabled.

Values: full / short
Default: full

    example: [rps-listing-carousel pager=true pager_type=short]

##### auto_rotate (optional)

Specify whether the carousel should rotate automatically.

Values: true / false
Default: false

    example: [rps-listing-carousel auto_rotate=false]

##### auto_controls (optional)

Specify whether to show start and stop buttons if auto_rotate is enabled.

Values: true / false
Default: false

    example: [rps-listing-carousel auto_controls=true]

##### speed (optional)

Specify the amount of time to pause before advancing to the next slide.

Values: This value must be supplied in milliseconds, the example below would wait 5 seconds before loading the next slide.
Default: 4000

    example: [rps-listing-carousel speed=5000]

##### captions (optional)

Specify the whether to show captions on listings. Captions contain the full address, beds and baths.

Values: true / false
Default: true

    example: [rps-listing-carousel captions=false]

##### class (optional)

Specify an additional class to add to the outer wrap of the listing carousel. This enables you to add additional css to carousel within your own themes style.css file by referencing the specified class. You must know css to use this feature.

    example: [rps-listing-carousel class=custom_carousel]

### Listing Slider | Shortcode

The [rps-listing-slider] shortcode allows you to embed a slider component for cycling through listings. Listings can be retrieved by a group of Listing Id's, an Agent Id, or Office Id.

agent_id office_id listing_ids max_slides wrap class

##### agent_id (conditionally required)

To include listings for a specific agent enter the Id of the agent in the agent_id option.

Values: Agent id's can be found under "Listings" in your WordPress admin in brackets after the agent name.

    example: [rps-listing-carousel agent_id=12598]

##### office_id (conditionally required)

To include listings for a specific office enter the Id of the office in the office_id option.

Values: Office id's can be found under "Listings" in your WordPress admin in brackets after the office name.

    example: [rps-listing-carousel office_id=849547]

##### listing_ids (conditionally required)

To retrieve a specific set of listings enter the listing Id's separated by comma's in the listing_id option.

    example: [rps-listing-slider listing_ids=159845,154854,842657,748592,859652]

##### speed (optional)

Specify the amount of time to pause before advancing to the next slide. This value must be supplied in milliseconds, the example below would wait 5 seconds before loading the next slide.

Values: This value must be supplied in milliseconds, the example below would wait 5 seconds before loading the next slide.
Default: 4000

    example: [rps-listing-slider agent_id=12598 speed=5000]

##### max_slides (optional)

Specify the max amount of slides to load in the slider.

Default: 10

    example: [rps-listing-slider agent_id=12598 max_slides=20]

##### wrap (optional)

Specify the whether the slider should wrap and continuously cycle when the end of the slider is reached.

Values: true / false
Default: true

    example: [rps-listing-slider agent_id=12598 wrap=false]

##### class (optional)

Specify an additional class to add to the outer wrap of the listing slider. This enables you to add additional css within your own themes style.css file by referencing the specified class. You must know css to use this feature.

    example: [rps-listing-slider agent_id=12598 class=custom_slider_style]

### Search Box | Shortcode

The [rps-listing-search-box] shortcode allows you to embed a search box where users can enter a city, province, postal code, neighborhood or combination thereof and view mapped listings within the area specified.

box_text btn_text class

##### box_text (optional)

Specify the placeholder text to be shown in the text box, this text disappears when the user begins entering their search terms.

Default: Where would you like to look today?

    example: [rps-listing-search-box box_text="Search our Properties"]

##### btn_text (optional)

Specify text to be shown on the search button before the default search icon.

    example: [rps-listing-search-box btn_text=Search]

##### class (optional)

Specify an additional class to add to the outer wrap of the listing search box. This enables you to add additional css within your own themes style.css file by referencing the specified class. You must know css to use this feature.

    example: [rps-listing-search-box class=custom_search_box]

### Search Business | Shortcode

The [rps-listing-search-business] shortcode allows you to embed a search box where users can enter a city, province, postal code, neighborhood or combination thereof, select a business from the dropdown and view mapped business listings within the area specified.

box_text btn_text class

##### box_text (optional)

Specify the placeholder text to be shown in the text box, this text disappears when the user begins entering their search terms.

Default: Enter a City, Neighbourhood or Address'

    example: [rps-listing-search-box box_text="Enter a Business Location"]

##### btn_text (optional)

Specify text to be shown on the search button before the default search icon.

    example: [rps-listing-search-box btn_text=Go]

##### class (optional)

Specify an additional class to add to the outer wrap of the business search box. This enables you to add additional css within your own themes style.css file by referencing the specified class. You must know css to use this feature.

    example: [rps-listing-search-box class=custom_search_box]

### Search Form | Shortcode

The [rps-listing-search-box] shortcode allows you to embed a detailed search form where users can enter a price range, bed range, bath range, city, province, property type, transaction type, or combination thereof and search your listings.

style title hide class

##### style (optional)

Specify the style of form to load. Horizontal forms are better for wider content spaces, vertical forms are better for narrower content spaces, but either can be used. Valid values include horizontal and vertical.

Values: horizontal / vertical
Default: horizontal

    example: [rps-listing-search-form style=vertical]

##### title (optional)

Specify an optional title for the search form title displayed in the carousel header left aligned.

    example: [rps-listing-carousel title='My Recent Listings']

##### hide (optional)

Specify search options to hide on the search form. By default all are displayed

Values: type / business / transaction / building / bedrooms / bathrooms / price / street_address / city / community / neighbourhood / province / postal_code / mls / open_house

    example: [rps-listing-search-box hide="business,street_address,community"]

##### class (optional)

Specify an additional class to add to the outer wrap of the search form. This enables you to add additional css to search form within your own themes style.css file by referencing the specified class. You must know css to use this feature.

    example: [rps-listing-search-box class=custom_search_box]

### Single Listing | Shortcode

The [rps-single-listing] shortcode allows you to embed a single listing's full details page into a page or post.

listing_id post_id view back_button

You must specify either a Listing ID or Post ID to display a single listing.

##### listing_id (conditionally required)

Specify the ListingID of the listing you would like to display. If no value is present the system will check if the post_id option is set, if it is the post_id will be used to retrieve the listing or an error will be shown in the shortcodes output if both values have not been supplied.

    example: [rps-single-listing listing_id=1489564]

##### post_id (conditionally required)

Specify the Post ID of the listing you would like to display. If no value is present the system will check if the listing_id option is set, if it is the listing_id will be used to retrieve the listing or an error will be shown in the shortcodes output if both values have not been supplied.

    example: [rps-single-listing post_id=456]

##### view (optional)

Specify the page layout for full listing details.

Values: full-width / sidebar-right / sidebar-left
Default: full-width

    example: [rps-single-listing post_id=456 view=sidebar-right]

##### back_button (optional)

Specify whether to display a back button at the top left of the listing details.

Values: true / false
Default: false

    example: [rps-single-listing post_id=456 view=map]

# Widgets

### What's a Widget?

A WordPress Widget is a small block that performs a specific function. You can add these widgets in widget-ready areas on your web page.

Widgets were originally designed to provide a simple and easy-to-use way of giving design and structure control of the WordPress Theme to the user. Widgets require no code experience or expertise. They can be added, removed, and rearranged on the Theme Customizer or Appearance > Widgets in the WordPress Administration Screens.

### Cities List | Widget

Display horizontal or vertical listing carousel.

##### Widget Title (optional)

Specify an optional widget title for the list, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### City List Title (optional)

Specify an optional title for the city list which is displayed in the city list panel header.

Default: empty and no city list title is shown.

##### Cities To Include (conditionally required)

Select all cities to include in the city list by enabling the checkbox to the left of the city name.

##### Additional Cities to Include (conditionally required)

Include additional cities not found in the "Cities to Include" options. Enter comma separated city names.

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the cities list.

### Contact Form | Widget

##### Widget Title (optional)

Specify an optional widget title for the contact form, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### Contact Title (optional)

Specify an optional title for the contact form which is displayed in the contact forms panel header.

Default: empty and no contact title is shown.

##### Contact Style (required)

Select the style of the contact form. Default: Vertical

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the contact form.

### Favorites Box | Widget

##### Widget Title (optional)

Specify an optional widget title for the favorite’s box, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### Favorites Title (optional)

Specify an optional title for the favorites box which is displayed in the favorites panel header.

Default: empty and no favorite’s title is shown.

##### Favorites Style (required)

Select the style of the favorites box.

Default: Vertical

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the favorites box.

### Listing Carousel

The listing carousel widget allows you to embed a listing carousel showing single or multiple listings simultaneously. Listings can be retrieved by and agent id or office id.

#### Carousel Style Settings

##### Widget Title (optional)

Specify an optional widget title for the carousel, this type of title is displayed in native widget title tag. Default: empty and no widget title is displayed.

##### Carousel Title (optional)

Specify an optional title for the carousel which is displayed in the carousel panel header. Default: empty and no title or carousel header is shown.

##### Carousel Style (required)

Select the style of the carousel to load.

Default: Horizontal

##### Slide Captions (required)

Toggle slide captions overlay showing Address, City, Price, Bedrooms, and Bathrooms on hover.

Default: Yes

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the listing carousel.

#### Carousel Filters

##### Agent ID (optional)

To retrieve listings for a specific agent enter the id of the agent in the Agent ID input. This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results.

##### Office ID (optional)

To retrieve listings for a specific office enter the Id of the office in the Office ID option. This returns a result consisting on only the specified offices listings. This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results.

Default: empty, the carousel will not be filtered by office id.

##### Property Type (optional)

To retrieve listings with a specific property type enter the property type in the Property Type option. This returns a result consisting of only listings with the specified property types. This option can be combined with other options like agent_id, office_id, Property Type, Price, Bedrooms, etc. to further refine the results. Valid values include Agriculture, Business, Industrial, Multi-Family, Office, Other, Retail, Single Family or Vacant Land.

Default: empty, the carousel will not be filtered by property types.

##### Transaction Type (optional)

To retrieve listings with a specific transaction type enter the transaction type in the Transaction Type option. This returns a result consisting of only listings with the specified property types. This option can be combined with other options like agent_id, office_id, Property Type, Price, Bedrooms, etc. to further refine the results. Valid values include For Sale, For Lease or For Rent.

Default: empty, the carousel will not be filtered by transaction types.

##### City (optional)

To retrieve listings for a specific City, etc.,enter the City, etc.,in the City, etc.,option. This returns a result consisting of only listings located in the specified City, etc., This option can be combined with other options like agent_id, office_id, Property Type, Price, Bedrooms, etc. to further refine the results.

Default: empty, the carousel will not be filtered by cities.

##### Community (optional)

To retrieve listings for a specific community enter the name of the community in the community option. You can include more than one community, by comma separating the values. This returns a result consisting on only the specified community(s). This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results.

Default: empty, the carousel will not be filtered by communities.

##### Neighbourhood (optional)

To retrieve listings for a specific neighbourhood enter the name of the neighbourhood in the neighbourhood option. You can include more than one neighbourhood, by comma separating the values. This returns a result consisting on only the specified neighbourhood(s). This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results.

Default: empty, the carousel will not be filtered by neighbourhoods.

##### Province (optional)

To retrieve listings for a specific Ontario enter the province in the province option. This returns a result consisting of only listings located in the specified province. This option can be combined with other options like agent_id, office_id, Property Type, Price, Bedrooms, etc. to further refine the results.

Default: empty, the carousel will not be filtered by provinces.

##### Postal Code (optional)

To retrieve listings for a specific postal code enter the postal code in the postal code option. You can include more than one postal code, by comma separating the values. You can also specify wildcards by placing "*" in your postal code. This returns a result consisting on only listings found within the specified postal code(s). This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results.

Default: empty, the carousel will not be filtered by postal codes.

##### Bedrooms (optional)

To retrieve listings for a specific number of Bedrooms or range of Bedrooms, enter comma separated values in the Bedrooms option. The first comma separated value is the min number of Bedrooms the second is the max, if you would like a fixed number of Bedrooms both values should be the same. This returns a result consisting of only listings matching the number of, or range of Bedrooms specified. This option can be combined with other options like agent_id, office_id, Property Type, Price, Bedrooms, etc. to further refine the results.

Default: empty, the carousel will not be filtered by Bedrooms.

##### Bathrooms (optional)

To retrieve listings for a specific number of Bathrooms or range of Bathrooms, enter comma separated values in the Bathrooms option. The first comma separated value is the min number of Bathrooms the second is the max, if you would like a fixed number of Bathrooms both values should be the same. This returns a result consisting of only listings matching the number of, or range of Bathrooms specified. This option can be combined with other options like agent_id, office_id, Property Type, Price, Bedrooms, etc. to further refine the results.

Default: empty, the carousel will not be filtered by Bathrooms.

##### Price (optional)

To retrieve listings for a Price range, enter comma separated values in the Price option. The first comma separated value is the min Price, the second is the max Price. This returns a result consisting of only listings matching the Price range specified. This option can be combined with other options like agent_id, office_id, Property Type, baths, Bedrooms, etc. to further refine the results. Do not enter commas in your price or a $ sign, numeric values only

Default: empty, the carousel will not be filtered by Bathrooms.

##### Open House (optional)

To retrieve listings with and open house listed, set the Open House option to "Yes". This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results.

Default: false, the carousel will not be filtered by open house.

##### description (optional)

To retrieve listings for a specific keyword in the description enter the text you would like to search for in the description option. You can include more than one postal code, by separating multiples with a "|" character. This returns a result consisting on only listings found with a description containing the specified description(s). This option can be combined with other options like Property Type, Price, Bedrooms, Bathrooms, City, etc., to further refine the results. Description is retained if user submits filtering options in the listings results filter form.

Default: empty, the carousel will include all descriptions.

#### Carousel Slides Settings

##### Max. Slide Width (required)

Specify the max width of the slides in the carousel. This setting is combined with min and max slides to achieve the best settings for you page setup.

Default: 180.

##### Max. Number of Slides (required)

Specify the max number of slides to load into the carousel in the carousel.

Default: 24.

##### Max. Number of Slides Displayed (required)

Specify the minimum number of slides to show simultaneously. The carousel is responsive and will adjust number of slides based on the users screen size. This value should be as small as possible to cater to mobile devices.

Default: 1

##### Min. Number of Slides Displayed (required)

Specify the maximum number of slides to show simultaneously. The carousel is responsive and will adjust number of slides based on the users screen size. This value should be the ideal number of slides to be displayed simultaneously.

Default: 4

##### Number of Slides to Rotate per Advance (required)

Specify the number of slides to advance when the carousel cycles. You can move one slide at a time or multiple.

Default: 1

#### Carousel Slides Settings

##### Auto Rotate (required)

Specify whether the carousel should rotate automatically.

Default: Yes

##### Rotate Speed (required)

Specify the amount of time to pause before advancing to the next slide. This value must be supplied in milliseconds, the example below would wait 5 seconds before loading the next slide.

Default: 4 seconds.

##### Auto Play Controls (required)

Specify whether to show start and stop buttons if auto_rotate is enabled.

Default: No

##### Show Paging Controls (required)

Specify whether a pager should be displayed on the carousel.

Default: No

##### Paging Control Style (required)

Specify the style of pager to use if pager is enabled.

Default: Full.

### Listing Preview Box | Widget

##### Widget Title (optional)

Specify an optional widget title for the listing preview, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### Listing ID (required)

Specify the Listing ID of the listing to preview.

##### Preview Style (required)

Select the style of the favorites box.

Default: Vertical

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the listing preview.

### Property Types List | Widget

##### Widget Title (optional)

Specify an optional widget title for the list, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### City List Title (optional)

Specify an optional title for the city list which is displayed in the property type list panel header.

Default: empty and no property list title is shown.

##### Property Types To Include (conditionally required)

Select all property types to include in the property types list by enabling the checkbox to the left of the city name.

##### Additional Property Types to Include (conditionally required)

Include additional property types not found in the "Property Types to Include" options. Enter comma separated property types.

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the property types list.

### Search Box | Widget

##### Widget Title (optional)

Specify an optional widget title for the listing preview, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### Box Text (optional)

Enter a custom place holder for the search box. Default: "Where would you like to look today?"

##### Button Text (optional)

Enter text to display on search button. Default: empty and only a search icon is show on the button.

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the search box.

### Search Form | Widget

#### Title Settings

##### Widget Title (optional)

Specify an optional widget title for the search form, this type of title is displayed in native widget title tag.

Default: empty and no widget title is displayed.

##### Search Form Title (optional)

Specify an optional title for the search form which is displayed in the search form panel header.

Default: empty and no favorite’s title is shown.

#### Style Settings

##### Search Form Style (required)

Select the style of the search form.

Default: Vertical

##### Additional CSS Class (optional)

Specify an additional class to add to the outer wrap of the search form.

#### Options Settings

Select all search input options you would like include in the widget search form. By default all inputs are selected.

# Sidebars

The following sidebars area widgetized and can have additional widgets added on top of the content that is loaded in the sidebars as configured under RealtyPress » Appearance » Single Listing and the RealtyPress » Appearance » Listing Results tabs. Additional widgets are always shown after content configured in appearance options.

#### RealtyPress Results – Left Sidebar

RealtyPress Results – Left Sidebar is displayed on listing results pages. This sidebar only displays if the listing results layout has been configured to use a left sidebar layout. Listing results layout settings can be found under RealtyPress » Appearance » Listing Results tabs.

The RealtyPress Results sidebar always contains a search filter for the results at the top of the sidebar.

#### RealtyPress Results – Right Sidebar

RealtyPress Results – Right Sidebar is displayed on listing results pages. This sidebar only displays if the listing results layout has been configured to use a right sidebar layout. Listing results layout settings can be found under RealtyPress » Appearance » Listing Results tab.

The RealtyPress Results sidebar always contains a search filter for the results at the top of the sidebar.

#### RealtyPress Single– Left Sidebar

RealtyPress Single – Left Sidebar is displayed on single listing pages. This sidebar only displays if the single listing layout has been configured to use a left sidebar layout. Single listing layout settings can be found under RealtyPress » Appearance » Single Listing tab.

#### RealtyPress Single – Right Sidebar

RealtyPress Single – Right Sidebar is displayed on single listing pages. This sidebar only displays if the single listing layout has been configured to use a right sidebar layout. Single listing layout settings can be found under RealtyPress » Appearance » Single Listing tab.

# Child Themes

The information below is based on using the default parent theme for RealtyPress Premium.

The RealtyPress template files contain the template structure and markup for the front-end content of RealtyPress . These template files can be found within the /realtypress/public/templates/default directory.

You can edit these files in an upgrade safe way through overrides. Simply create a directory called realtypress in your theme and copy the files you wish to override from realtypress/public/templates/default/ to the /realtypress directory you created previously, you must retain the same file structure.

Example: To override the grid result template, copy:

realtypress/public/templates/default/partials/property-result-grid.php to
your-theme/realtypress/partials/ property-result-grid.php

The copied file will now override the RealtyPress default template file.

RealtyPress was built with themes in mind and most templates are broken up into many partials to give flexibility. Currently 32 partials for RealtyPress content can be found in the partials directory within the default theme.

Shortcodes are also themed and can be found in the shortcodes directory within the default theme.

#### Where to find what

/ | RealtyPress Layout Templates
/email | Email Templates
/partials | Partial Templates
/shortcodes | Shortcode Templates

Not creating a child theme and editing the files within the RealtyPress core plugin itself will cause your changes to be overwritten during the upgrade process and any changes will be lost permanently.

# Hooks

### Single Listing Hooks

realtypress_before_listing_single_header

realtypress_after_listing_single_header

realtypress_before_listing_single_property_photos

realtypress_after_listing_single_property_photos

realtypress_before_listing_single_intro

realtypress_after_listing_single_intro

realtypress_before_listing_single_open_house

realtypress_after_listing_single_open_house

realtypress_before_listing_single_events

realtypress_after_listing_single_events

realtypress_before_listing_single_business

realtypress_after_listing_single_business

realtypress_before_listing_single_details

realtypress_after_listing_single_details

realtypress_before_listing_single_building

realtypress_after_listing_single_building

realtypress_before_listing_single_parking

realtypress_after_listing_single_parking

realtypress_before_listing_single_land

realtypress_after_listing_single_land

realtypress_before_listing_single_room

realtypress_after_listing_single_room

realtypress_before_listing_single_utilities

realtypress_after_listing_single_utilities

realtypress_before_listing_single_tabs

realtypress_after_listing_single_tabs

realtypress_before_listing_single_footer

realtypress_after_listing_single_footer

### Single Listing Sidebar Hooks

The hooks below hook to both left and right sidebars.

realtypress_before_listing_single_sidebar

realtypress_before_listing_single_contact_form

realtypress_after_listing_single_contact_form

realtypress_before_listing_single_agent_vertical

realtypress_before_listing_single_agent_vertical

realtypress_before_listing_single_sidebar_favorites

realtypress_before_listing_single_sidebar_favorites

realtypress_after_listing_single_sidebar

### Listing Results Hooks

realtypress_before_listing_result_header

realtypress_after_listing_result_header

realtypress_before_listing_result_grid

realtypress_after_listing_result_grid

realtypress_before_listing_result_list

realtypress_after_listing_result_list

realtypress_before_listing_result_map

realtypress_after_listing_result_map

### Listing Result Sidebar Hooks

The hooks below hook to both left and right sidebars.

realtypress_before_listing_result_sidebar

realtypress_before_listing_result_sidebar_search

realtypress_after_listing_result_sidebar_search

realtypress_before_listing_result_sidebar_favorites

realtypress_before_listing_result_sidebar_favorites

realtypress_before_listing_result_sidebar_contact

realtypress_before_listing_result_sidebar_contact

realtypress_after_listing_result_sidebar

# Filters

realtypress_new_post_title

realtypress_new_post_name

© RealtyPress.ca | RealtyPress Documentation (RPS20151221)

The trademarks REALTOR®, REALTORS®, and the REALTOR® logo are controlled by The Canadian Real Estate Association (CREA) and identify real estate professionals who are members of CREA. The trademarks MLS®, Multiple Listing Service® and the associated logos are owned by The Canadian Real Estate Association (CREA) and identify the quality of services provided by real estate professionals who are members of CREA. The trademark DDF® is owned by The Canadian Real Estate Association (CREA) and identifies CREA's Data Distribution Facility (DDF®)