WordPress IDX Integration For Your Real Estate Website or Blog

Let’s Face It – WordPress Is Hot!

Many Real Estate folks are using it at least for their blog, if not managing their entire website with it. So, it only makes sense for us to integrate with it, right?

We also offer Complete WordPress Websites, for those of you that don’t want the technical challenges of setting up your own WordPress installation.

[button size=”large” color=”purple” link=”#IndexableListings”]Now Available: Indexable Listings![/button]

WordPress Websites

For all of you WordPress junkies, we’re now serving WordPress Websites!

Need Help Adding ListingWare To WordPress?  That’s What We’re Here For!

If adding ListingWare to your WordPress website is too much to deal with or you don’t have time, we can set it up for you. It’s $95 for a single installation of the plugins and shortcodes.  If you have more than one website or many pages to update, it may be a little more.  Please request a quote to find out.

[button color=”purple” size=”large” link=”/contact-us/customer-support-form/”]Request A Quote[/button]

Ready To Get Started? Before You Dive In…

You should have a basic understanding of our API because many of the same concepts are used. Please check it out. Go ahead – I’ll wait…

Install The Primary Plugin

In WordPress technical terms, our service isn’t the plugin. We use a third-party plugin that’s been around for a while, so it’s stable and proven. We’re just using it in a novel manner. It’s called WP Web Scraper, and you can either download it separately from the WordPress Plugin repository or install it directly from within your WordPress setup under Plugins.  If you’re using one of our hosted WordPress websites, we’ve taken care of that for you.

[box type=”note”] Version 2.7 is the suggested version of the plugin, which is available on the right side of that page on wordpress.org under Other Versions. Version 2.8 is the current version, but there are some database caching issues that make it harder to manage.
[/box]

And yes, I know that the author uses both “Scraper” and “Scrapper”. He’s from India. I think his English is much better than my Hindi, so I’ll forgive it. Part of the beauty of the WordPress community is its diversity!

The WP Web Scraper plugin does require PHP5 (WordPress is written in PHP, a web programming language). Most webhosts have both PHP4 and PHP5 available. You shouldn’t have to be concerned with this unless you see an error similar to this during the installation/activation:

<pre class=”lang:default;”>
Plugin could not be activated because it triggered a fatal error.

Parse error: parse error, unexpected T_OBJECT_OPERATOR in
/wp-content/plugins/wp-web-scrapper/wpws_index.php on line 173
</pre>

If you see that error, please consult your webhost to find out how to make PHP5 your default version. You’ll probably need to uninstall the plugin, fix the PHP version, then reinstall/reactivate it.

[box type=”alert”] If you have updated your plugin to version 2.8, you might find your website getting slow or your hosting company saying you’re beating up the database server. As noted above, we suggest version 2.7, unless you like maintaining your database directly – a LOT.[/box]

This is because of the caching method used in version 2.8.  If you have SQL access to your WordPress database, the SQL syntax to clear out the cached information is:

<pre class=”lang:default;”>

delete from wp_options where option_name like ‘%_transient_%’

</pre>

Look Ma – No Frames!

With the handy plugin above, our IDX services become part of your WordPress website! No frames, no Ajax calls – completely part of the page, so it’s search-engine-friendly, fully indexable and takes on the styling of your website. It can be added to either Posts or Pages. Plus, we’re able to pass through some of our standard calls-to-action and have them pass directly back to ListingWare.

First, you’ll need to create a blank Post or Page in WordPress. The name isn’t critical. This sets up the standard Search Criteria > Search Results > Listing Detail process flow. To understand this flow, you can check out this example WordPress installation and start with the Search option. (Atlanta area search, so cities like Roswell, Decatur, Atlanta, Douglasville will work.)

Using Default Permalinks

[box type=”note”] If we’re hosting your WordPress website or you’re using one of the “Pretty Permalinks” methods on your own, you can skip this part.
[/box]

The following is necessary if you’re using Default Permalinks, found under the WordPress system at Settings > Permalinks.

After you add the Post or Page, go back to Edit mode of the Post/Page and take note of the ‘post=N’ value in your browser’s address bar. This is not the Permalink value, but the actual browser address bar where you see the URL of the page you’re on. This is important, because you’ll be using the number ‘N’ to create the following value later:

<pre class=”lang:default;”>
p=N (if added to a Post)

or

page_id=N (if added to a Page)
</pre>

You can create as many Posts or Pages as you like, each with its own p/page_id parameter. It is important to pay attention to whether you’re adding a Post or a Page, as WordPress handles each differently. If you want to offer several different types of display, you can have each one setup to use different default values as described below. Just make sure you include the separate p/page_id value so the system will know where to pass listing info to.

Almost Ready…

Adding ListingWare to your website uses a concept in WordPress called Shortcodes.

[box type=”note”] It’s always best to place the WordPress page editor in HTML mode. Visual mode may work, but it could produce odd display results.
[/box]

Please note the url field below uses a format like what is created with standard API calls. You’ll substitute your URL for ‘yourname.servicename.com’ below (and if you are NOT using Pretty Permalinks, you’ll change the values of p/page_id to what you got in the step above). Finally, make sure you start with the left square bracket, followed by ‘wpws’, and end with right square bracket. It’s all needed for the plugin to function properly. The url parameter value should not have any spaces.

Lastly, you’ll want to keep a bookmark on the Usage Manual of WP Web Scraper. As noted there, the url and selector parameters are required by the plugin. For our use, we also require the user_agent parameter to be “WordPressFeed” and the output parameter to be “html”. These make sure the format is correct to work inside your WordPress pages.

OK, Let’s Go!

Let’s say you want to create a Post about the city of Roswell. You can put whatever content you want in the Post, then add this:

<pre class=”lang:default;”>
[wpws url=”http://yourname.servicename.com/search/index.cfm?ContentType=WordPress&City=Roswell&___QUERY_STRING___” selector=”#lwcontent” timeout=”15″ cache=”5″ output=”html”] </pre>

The City parameter should be familiar from the standard API. You can add any combination of specific API parameters you want to get specific search results.

Please Note – Key Difference from API! The new parameter of WordPressStart tells our system where to start the process. This method is instead of using the individual page names of the standard API – everything funnels through ‘/index.cfm’. WordPressStart=Search is the default and it’s assumed. If you want to feed directly to the search results, you can use WordPressStart=Results, like below.

Added 1/18/11: You must also include the ContentType=WordPress parameter now.  Some changes in the newer version of the plugin aren’t reliably passing the USER_AGENT parameter, so this hard-coded value makes sure the system interprets the WordPress calls correctly.

<pre class=”lang:default;”>
[wpws url=”http://yourname.servicename.com/search/index.cfm?ContentType=WordPress&City=Roswell&WordPressStart=Results&___QUERY_STRING___” selector=”#lwcontent” timeout=”15″ cache=”5″ output=”html”] </pre>

Basic Search Page

To create a Search Page that takes user input, use the following pattern. It defaults to a City search, but if you also include the KeyField API parameter, you can make it use the various key search fields.

<pre class=”lang:default;”>
[wpws url=”http://yourname.servicename.com/search/index.cfm?ContentType=WordPress&___QUERY_STRING___” selector=”#lwcontent” timeout=”15″ cache=”5″ output=”html”] </pre>

Please note the part about ‘QUERY_STRING’. This is the key element and must be in the following format:
[cce] &___QUERY_STRING___
(ampersand sign, three underscores, QUERY, underscore, STRING, three underscores)
[/cce] That’s it, but it’s key. This parameter is so that you can take dynamic input from the Search page fields and pass them through to ListingWare without having to track each individual field. QUERY_STRING just grabs everything.

We’re also working on integrating the Map, Gallery, and Flow results style.

If you have any questions, concerns, or ideas, please send an email to support [at] listingware.com. We’ll be glad to see if we can assist.

New – 4/10/12: Fully Indexable Listing URLs and Getting Even More Out Of WordPress

We’ve finally come up with a method to make your WordPress setup even more Search Engine Friendly! Now every listing you display can have a URL like /listing/123-main-street-anytown-ga-30303-1234567/ – this makes it even more likely to be indexed by Search Engines.  To see it in action, you can check out this example installation, taking note of the links to the individual listings and the URL, page title, and headline that appear on the Listing Detail pages.

In addition to the WP Web Scraper plugin and configuration from the top of this page, it requires a few more things:

ListingWare Friendly URLs Plugin

This is our very own plugin that does a couple of things:

  1. It adds a special rule for the Listing Detail page to be handled properly.
  2. It replaces the page title and page headline with listing detail information.

It’s not available through the WordPress Plugin repository, so you must get it from the button below.

[button size=”large” color=”purple” link=”http://listingware.com/plugins/listingware-1.0.zip” window=”true”]Download ListingWare Friendly URLs 1.0 in ZIP Format[/button]

Shortcode Exec PHP Plugin

This additional plugin lets us use some PHP magic to create a shortcode around the WP Web Scraper shortcode.  You can find Shortcode Exec PHP at the WordPress Plugin repository also or install it from within your WordPress under Plugins.

Five Steps For Indexable Listings

Step 1:  Install The Plugins
Add the ListingWare Friendly URLs plugin and the Shortcode Exec PHP plugin described above.

Step 2:  Create Listing Detail Page

  1. Create a new blank page called ‘Listing’ and don’t add anything to the page body.  When you save the page, it will give it a permalink (slug) of ‘listing’.
  2. On the right side of the Edit Page view under Page Attributes, change the Page Order to 99 so it will go to the bottom of your page list and be out of the way.
  3. Save the page.
  4. Remove the page title of ‘Listing’, then save the page again, so it will have a blank page title.

Step 3: Create Your Own Shortcode
[box type=”note”] If we’re hosting your WordPress website, you can skip this step.
[/box]In your WordPress admin under Tools you’ll find the option for Shortcode Exec PHP.  The default settings of the plugin should be OK.  You are creating a single shortcode called wpws_listing that will interpret the Listing Detail page.  Here is what it should say:

[cce] extract(shortcode_atts(array(‘url’ => ”), $atts));
$thislisting = get_query_var(‘lwlisting’);
echo do_shortcode(‘[wpws url=”‘.$url.’?ContentType=WordPress&WordPressPage=Detail&FriendlyURL=Yes&LWListing=’.$thislisting.'” selector=”#lwcontent” timeout=”15″ cache=”5″ output=”html”]’);
[/cce]

Step 4: Add The Special Shortcode To The Listing Page
Go back to the Listing Detail page created in Step 2 (remember:bottom of Page list) and add the following:

[cce] [wpws_listing url=”http://yourname.servicename.com/search/index.cfm”] [/cce]

Remember to replace the URL parameter with your own ListingWare URL.  That is all you need, because the shortcode from Step 3 takes care of the rest of the parameters.

Step 5: Add The Friendly URL Parameter To Your Pages
Everywhere you have the primary WPWS shortcode in your Pages and Posts, add the parameter FriendlyURL=Yes to the rest of the URL parameter.

Need Help?  That’s What We’re Here For!

If all of that is too much to deal with or you don’t have time, we can set it up for you. It’s $95 for a single installation of the plugins and shortcodes.  If you have more than one website or many pages to update, it may be a little more.  Please request a quote to find out.

[button color=”purple” size=”large” link=”/contact-us/customer-support-form/”]Request A Quote[/button]

P.S. This page was first published on March 30th, 2010. Any other IDX vendors that come out and say “Ooh, look at us! We’re using WP Web Scraper too!” Well, they’re just copycats. The plugin is free, but that’s just part of the equation. I don’t really think they can make it happen anyway, because they’d have to have our API, which they don’t. So there.

Only softRealty CreativeRoof softRealty has even seen this so far, and we like those guys. Abundance Theory, right?