oakley chamber wordpress development details

4
WordPress Meetup Show Your Site Notes on http://oakleychamber.com Development Environment VMware (http://www.vmware.com/ ) running several LAMP server instances for 1) development, 2) development testing, 3) production testing. Other virtualization solutions will work as well but VMware is preferred because of the industry support, reliability and high performance. Ubuntu 12.04 LTS Server (http://www.ubuntu.com/download/server ) which is used as the basis for the virtualized LAMP servers. Basic installation with SSH, Apache2, MySQL, PHP, etc. and then extended with Webmin (http://www.webmin.com/ ) and Virtualmin (http://www.webmin.com/virtualmin.html ) as well as VSFTPd (https://security.appspot.com/vsftpd.html ). Most importantly, the development and development testing servers have Xdebug (http://xdebug.org ) installed (and configuration files to turn Xdebug and profiling support on and off). Serious developers who are forced to use PHP should *never* be without Xdebug and *should* run frequent profiling tests on their code to track down areas that can be optimized or are otherwise causing problems. The other must-have tools are JetBrains’ PHPStorm (http://www.jetbrains.com/phpstorm/ ) which is the best money you’ll ever spend if you wish to whip your PHP mess into shape. The Goal of the Website Most Chamber Websites provide very little value to their members. The so-called business listings on their site are nothing more than mostly blank pages with just the business name and address. If you’re lucky you get a few more lines of content. Visually these “listings” are worthless. For SEO purposes those “listings” are even more worthless. The original idea was to just overhaul the current Oakley Chamber website and have a business listings plugin that would provide the list of members. But after looking at many chamber sites and the abysmal state they are in around the country I decided we could do better than that and set out to create something that is of *real* value to members. This is how the idea of the “member profile pages” got started and kept getting extended and enhanced as development was taking place. The secondary (but equally important) goal was to provide kick-ass SEO value to our members. I know a thing or two about SEO stuff but decided to do all the “magic” at an even better level by seamlessly integrating “structured content” (http://eastbaywp.com/2012/03/links-structured-content/ ). And by that I mean integration of microformats, microdata, rich snippets, etc. A personal goal that I set out on was to show all the other chambers how their websites are unable to compete if you have a crazy developer in your region creating a site like this and scoring all the best results in search engines, thereby encouraging members of nearby chambers to join ours because we provide them some very specific additional value for their money. :-) The main plan for the member pages, events, past event write-ups, jobs, deals, etc. was to seamlessly integrate all these different portions of content to mix in with each other. For example, a member profile page would contain a section on the upcoming events, the past events the member has hosted or has been involved in, their current specials and deals, pictures and brochures (PDF files), etc. This has been accomplished by using the Post 2 Post plugin and relatively minor (yet because of the number of cross references in the content being rendered, a lot!) of custom code to get the correct content from the DB under the various different circumstances. The same Post 2 Post features have been used to create associations between members and events, board members and member businesses, and about 12 other relational aspects of the content.

Upload: east-bay-wordpress-meetup

Post on 15-May-2015

1.283 views

Category:

Documents


2 download

DESCRIPTION

Stefan Didak's website development details for the OakleyChamber.com website, presented at the March 2013 East Bay WordPress Meetup.

TRANSCRIPT

Page 1: Oakley Chamber WordPress Development Details

WordPress Meetup Show Your Site Notes on http://oakleychamber.com

Development Environment

VMware (http://www.vmware.com/) running several LAMP server instances for 1) development, 2) development testing, 3) production testing. Other virtualization solutions will work as well but VMware is preferred because of the industry support, reliability and high performance.

Ubuntu 12.04 LTS Server (http://www.ubuntu.com/download/server) which is used as the basis for the virtualized LAMP servers. Basic installation with SSH, Apache2, MySQL, PHP, etc. and then extended with Webmin (http://www.webmin.com/) and Virtualmin (http://www.webmin.com/virtualmin.html) as well as VSFTPd (https://security.appspot.com/vsftpd.html).

Most importantly, the development and development testing servers have Xdebug (http://xdebug.org) installed (and configuration files to turn Xdebug and profiling support on and off). Serious developers who are forced to use PHP should *never* be without Xdebug and *should* run frequent profiling tests on their code to track down areas that can be optimized or are otherwise causing problems.

The other must-have tools are JetBrains’ PHPStorm (http://www.jetbrains.com/phpstorm/) which is the best money you’ll ever spend if you wish to whip your PHP mess into shape.

The Goal of the Website

Most Chamber Websites provide very little value to their members. The so-called business listings on their site are nothing more than mostly blank pages with just the business name and address. If you’re lucky you get a few more lines of content. Visually these “listings” are worthless. For SEO purposes those “listings” are even more worthless.

The original idea was to just overhaul the current Oakley Chamber website and have a business listings plugin that would provide the list of members. But after looking at many chamber sites and the abysmal state they are in around the country I decided we could do better than that and set out to create something that is of *real* value to members. This is how the idea of the “member profile pages” got started and kept getting extended and enhanced as development was taking place.

The secondary (but equally important) goal was to provide kick-ass SEO value to our members. I know a thing or two about SEO stuff but decided to do all the “magic” at an even better level by seamlessly integrating “structured content” (http://eastbaywp.com/2012/03/links-structured-content/). And by that I mean integration of microformats, microdata, rich snippets, etc.

A personal goal that I set out on was to show all the other chambers how their websites are unable to compete if you have a crazy developer in your region creating a site like this and scoring all the best results in search engines, thereby encouraging members of nearby chambers to join ours because we provide them some very specific additional value for their money. :-)

The main plan for the member pages, events, past event write-ups, jobs, deals, etc. was to seamlessly integrate all these different portions of content to mix in with each other. For example, a member profile page would contain a section on the upcoming events, the past events the member has hosted or has been involved in, their current specials and deals, pictures and brochures (PDF files), etc. This has been accomplished by using the Post 2 Post plugin and relatively minor (yet because of the number of cross references in the content being rendered, a lot!) of custom code to get the correct content from the DB under the various different circumstances. The same Post 2 Post features have been used to create associations between members and events, board members and member businesses, and about 12 other relational aspects of the content.

Page 2: Oakley Chamber WordPress Development Details

Oakley Chamber WordPress Specifics

Used the Genesis Framework (http://www.studiopress.com/) and a slightly (visually) modified News theme.

Developed a plugin (to separate logic from the adapted theme) called WP-ChamberPress that contains all the hardwired logic that builds up the site and its back-end. The plugin contains a lot of what otherwise would go into your functions.php file and instantiates the 6 Custom Post Types while also providing all the metaboxes (i.e. custom fields) for these types. Along with various configuration panels at the back-end to set site-wide options. In addition the code provides several custom widgets that in combination with specific custom post types such as the “member pages” will produce the desired sidebar content that contains things like business hours, business logo, address, etc.

The visual style of the News theme was only altered slightly to give the website a little bit more shadows and color to set it apart from the default look and feel of the News theme. An additional 8K of custom CSS was added to support the output rendered from the WP-ChamberPress system.

The theme also contains 6 custom archive page templates, two custom pages to handle pricing and cost pro-rating (based on the day of the year) for the Gravity Forms forms that are used to handle new member enrollment and existing member renewals. There are also 6 matching single page templates for the various Custom Post Types (board member, member, committee, deal, job, past event), and of course 6 custom pages for the different taxonomies associated with these Custom Post Types.

Things Of Interest

Do not rely on Gravity Forms as a shopping cart system. You can turn it into one but the amount of effort you’ll have to put into it would not be the best way to spend your time or your client’s budget. For very basic pricing and PayPal handling it’ll be fine but the amount of code needed to turn it into a proper shopping cart system that can handle a lot of custom calculations and variables is not recommended.

The Event Manager plugin was chosen from the start but may not be the best choice either because it is a real pain in the behind to configure it properly. Especially since much of the configuration can’t be done programmatically but instead are done through dozens of back-end configuration panels. But once you get through all that it does what it is supposed to do.

The site runs surprisingly well for the number of plugins, DB queries, etc. it is doing. However, don’t try hosting this on a cheap shared plan. It is currently hosted on a shared plan at Media Temple but we have yet to see what the CPU analysis will show under heavier loads.

If I have to develop a site similar in nature to this one I’d most likely prefer to use Drupal because while the end result of the WP-ChamberPress system is certainly functional, the path towards getting to that stage required a lot of “code contortion” because it really shows how WP was not designed with the same architecture and purpose in mind as Drupal.

After the first week or so of having the website “live” the SEO results were starting to look even better than I had anticipated originally. On average we score at least on the first page results for 80% of our members (both business names or business type in case of geographic searches) but for about 45% of our members we score one or more results in the top 6 results. We are also seeing a lot of geographic related ranking take place as we have put a large percentage of our members on the map, with that I mean the google maps, bing maps, etc. Often having the Oakley Chamber site score *higher* than the actual websites of our members!

Page 3: Oakley Chamber WordPress Development Details

As some business have no websites of their own (a very tiny number, but they are out there) we wanted to provide something of better value than a FaceBook or social media profile page. It appears now that a guy named Larry who does garage doors in Contra Costa County is now the most famous Larry when searching through a geographic based search (like from your smart phone). :-)

I did not track the amount of time I spent creating the site nor the amount of time Sallie worked on helping with the vision and content but it is safe to say that if this was done as a commercial project the cost would be roughly somewhere between $20.000 and $30.000.

Future Enhancements

A proper set of features for front-end posting and modification so members can edit their profile data, post new jobs, deals, coupons, and announce their events. Currently the site offers a “change request form” that at the back-end results in a manual copy-paste fest. Given the relatively low number of members this is not yet an issue but might become one. Providing member access to the actual WordPress back-end comes with a variety of problems (disallowing the members to see certain meta boxes that are part of their profile page admin interface, for instance, some of which is actually controlled by third party plugins).

Another Custom Post Type with associated theme integration to provide listings + profile information for commercial real-estate for sale or lease in the area. Possibly as an additional small source of income for the Oakley Chamber.

More SEO tweaking after analyzing the results of the first few months of having the site be live.

Contact

Stefan [email protected]://www.stefandidak.com

Page 4: Oakley Chamber WordPress Development Details

Plugins Used

• Comprehensive Google Map Plugin• Dynamic Widgets• Electric Studio Auto Post Expire• Event Manager• Genesis Featured Widget Amplified• Genesis Responsive Slider• Genesis Tabs• Google Analytics• Google sitemap plugin• Gravity Forms• Gravity Forms PayPal Add-On• Gravity Forms Polls Add-on• Jetpack by WordPress.com• Link Manager• Meta Box• Posts 2 Posts• Shortcodes Ultimate• Simple Mail Address Encoder• Spam Free Wordpress• Twitter Feed for WordPress ***• Ultimate tag cloud widget• Woopra• WordPress SEO• WP Clean Up• WP Email Capture• WP Super Cache• WP-ChamberPress (all the custom stuff)