SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
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.
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!
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 Didak
stefan@stefandidak.com
http://www.stefandidak.com
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)

Más contenido relacionado

Más de East Bay WordPress Meetup

How to Develop a Color Palette for Your Website with Amanada McCoy
How to Develop a Color Palette for Your Website with Amanada McCoyHow to Develop a Color Palette for Your Website with Amanada McCoy
How to Develop a Color Palette for Your Website with Amanada McCoyEast Bay WordPress Meetup
 
Beyond Gravity Forms: Form Plugins for WordPress
Beyond Gravity Forms: Form Plugins for WordPressBeyond Gravity Forms: Form Plugins for WordPress
Beyond Gravity Forms: Form Plugins for WordPressEast Bay WordPress Meetup
 
Git Version Control for the Complete N00b by Adam LaBarge
Git Version Control for the Complete N00b by Adam LaBargeGit Version Control for the Complete N00b by Adam LaBarge
Git Version Control for the Complete N00b by Adam LaBargeEast Bay WordPress Meetup
 
Sallie Goetsch: Making the Events Calendar Sit Up and Beg
Sallie Goetsch: Making the Events Calendar Sit Up and BegSallie Goetsch: Making the Events Calendar Sit Up and Beg
Sallie Goetsch: Making the Events Calendar Sit Up and BegEast Bay WordPress Meetup
 
Rob La Gatta; Making the Events Calendar Sit Up and Beg
Rob La Gatta; Making the Events Calendar Sit Up and BegRob La Gatta; Making the Events Calendar Sit Up and Beg
Rob La Gatta; Making the Events Calendar Sit Up and BegEast Bay WordPress Meetup
 
Advanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating LimitationsAdvanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating LimitationsEast Bay WordPress Meetup
 
Introduction to Google Analytics by Katherine Mancuso
Introduction to Google Analytics by Katherine MancusoIntroduction to Google Analytics by Katherine Mancuso
Introduction to Google Analytics by Katherine MancusoEast Bay WordPress Meetup
 
iThemes Exchange: the New Kid on the WordPress E-Commerce Block
iThemes Exchange: the New Kid on the WordPress E-Commerce BlockiThemes Exchange: the New Kid on the WordPress E-Commerce Block
iThemes Exchange: the New Kid on the WordPress E-Commerce BlockEast Bay WordPress Meetup
 
What Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPressWhat Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPressEast Bay WordPress Meetup
 
Drag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify BuilderDrag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify BuilderEast Bay WordPress Meetup
 

Más de East Bay WordPress Meetup (20)

How to Develop a Color Palette for Your Website with Amanada McCoy
How to Develop a Color Palette for Your Website with Amanada McCoyHow to Develop a Color Palette for Your Website with Amanada McCoy
How to Develop a Color Palette for Your Website with Amanada McCoy
 
Event Management Plugins for WordPress
Event Management Plugins for WordPressEvent Management Plugins for WordPress
Event Management Plugins for WordPress
 
Beyond Gravity Forms: Form Plugins for WordPress
Beyond Gravity Forms: Form Plugins for WordPressBeyond Gravity Forms: Form Plugins for WordPress
Beyond Gravity Forms: Form Plugins for WordPress
 
Is Your (Client's) Website Ready for 2017?
Is Your (Client's) Website Ready for 2017?Is Your (Client's) Website Ready for 2017?
Is Your (Client's) Website Ready for 2017?
 
Git Version Control for the Complete N00b by Adam LaBarge
Git Version Control for the Complete N00b by Adam LaBargeGit Version Control for the Complete N00b by Adam LaBarge
Git Version Control for the Complete N00b by Adam LaBarge
 
Making WordPress Easier to Use
Making WordPress Easier to UseMaking WordPress Easier to Use
Making WordPress Easier to Use
 
WordPress Comments (November Meetup)
WordPress Comments (November Meetup)WordPress Comments (November Meetup)
WordPress Comments (November Meetup)
 
Sallie Goetsch: Making the Events Calendar Sit Up and Beg
Sallie Goetsch: Making the Events Calendar Sit Up and BegSallie Goetsch: Making the Events Calendar Sit Up and Beg
Sallie Goetsch: Making the Events Calendar Sit Up and Beg
 
Rob La Gatta; Making the Events Calendar Sit Up and Beg
Rob La Gatta; Making the Events Calendar Sit Up and BegRob La Gatta; Making the Events Calendar Sit Up and Beg
Rob La Gatta; Making the Events Calendar Sit Up and Beg
 
Advanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating LimitationsAdvanced Custom Fields: Amazing Possibilities and Irritating Limitations
Advanced Custom Fields: Amazing Possibilities and Irritating Limitations
 
March 2015: Plugins Worth Paying For
March 2015: Plugins Worth Paying ForMarch 2015: Plugins Worth Paying For
March 2015: Plugins Worth Paying For
 
Google Webmaster Tools for WordPress
Google Webmaster Tools for WordPressGoogle Webmaster Tools for WordPress
Google Webmaster Tools for WordPress
 
Introduction to Google Analytics by Katherine Mancuso
Introduction to Google Analytics by Katherine MancusoIntroduction to Google Analytics by Katherine Mancuso
Introduction to Google Analytics by Katherine Mancuso
 
iThemes Exchange: the New Kid on the WordPress E-Commerce Block
iThemes Exchange: the New Kid on the WordPress E-Commerce BlockiThemes Exchange: the New Kid on the WordPress E-Commerce Block
iThemes Exchange: the New Kid on the WordPress E-Commerce Block
 
Running a WordPress Business--Some Numbers
Running a WordPress Business--Some NumbersRunning a WordPress Business--Some Numbers
Running a WordPress Business--Some Numbers
 
What Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPressWhat Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPress
 
Making WordPress Fly
Making WordPress FlyMaking WordPress Fly
Making WordPress Fly
 
Drag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify BuilderDrag-and-drop WordPress Themes, featuring Themify Builder
Drag-and-drop WordPress Themes, featuring Themify Builder
 
Drag and-Drop WordPress Themes
Drag and-Drop WordPress ThemesDrag and-Drop WordPress Themes
Drag and-Drop WordPress Themes
 
Fun with WooCommerce
Fun with WooCommerceFun with WooCommerce
Fun with WooCommerce
 

Oakley Chamber WordPress Development Details

  • 1. 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.
  • 2. 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!
  • 3. 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 Didak stefan@stefandidak.com http://www.stefandidak.com
  • 4. 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)