SlideShare a Scribd company logo
1 of 55
Download to read offline
Best Practices in Client
       Theme Development
                          By James Tryon




Tuesday, December 4, 12
Who is James Tryon
                    •     Creative Director of Easily Amused, Inc.

                    •     We specialize in Branding &
                          Custom WordPress Design/Development.

                    •     Personally been in the biz since 99

                    •     Overflow work from Other Studios

                    •     Work as Other Companies full Creative/
                          Development Team.



Tuesday, December 4, 12
Some of the Brand I
                           have Worked With

                    • Sprint        • Proactive
                    • Peabody       • A lot of colleges
                    • Nemours       • PBS


Tuesday, December 4, 12
Things We have Made
                with WordPress
                    • e-Commerce         • Landing pages
                    • Job boards         • Holiday cards
                    • School directory   • CMS/Brochure
                    • Networks           • Blogs

Tuesday, December 4, 12
Overall Goals

                    •     Your clients should be able to edit all content on their site.

                    •     Think about your clients work flow - make it simple.

                    •     Always Think about Future Growth.

                    •     Your client should not need you when your done.

                    •     Things should not brake when Design Changes.




Tuesday, December 4, 12
How I build out a site
                    1. Stand up my Dev instance          6. Add sidebars as needed

                    2. Remove stock data                 7. basic css for placement

                    3. Turn on .htaccess/permalinks      8. Create Custom Post types

                    4. Publish all pages from Site Map   9. Add plugins as needed

                    5. Build out all Main Nav            10. Theme Simplest to Hardest




Tuesday, December 4, 12
Theme’s
                    •     Know when to make something a theme setting, Widgets or
                          Part of the Page template/theme layer.


                    •     If its a Main feature, could be a widget, shortcode or Theme
                          Template? And could it be reused on the site or Other?


                    •     Widgetable area can be anywhere, not just the Sidebars.


                    •     http://codex.wordpress.org/Theme_Review
                          Review for list of required files, Hooks and Navigation.




Tuesday, December 4, 12
Themes: Type of Themes
                    •     Framework

                          •   Can be ready in min, themes mostly done.



                    •     Child Theme

                          •   For overriding small changes or Just CSS



                    •     Starter Them - http://underscores.me

                          •   for fully custom client work, this is the best way to go.


Tuesday, December 4, 12
Template Hierarchy




                     •    http://codex.wordpress.org/Template_Hierarchy

Tuesday, December 4, 12
Themes: What
                          Should Be Where
                    If it adds function to the site, then it should be a plugin.

                    If its aesthetics related, it should be in the Themes Options.

                    If there is unique page level list, loops or nav’s create shortcodes.

                    If its a new feature for a sidebar, make a widget.

                    Shortcodes can be moved around and should always work.

                    This allow for clean upgrades and quick redesigns.

                    This also keeps the Theme layer much cleaner and simpler.

Tuesday, December 4, 12
If you can reuse it -
                          Move it.
                Best Case - move your code to a plugin.
                Make a content-type.php file for the custom loop


                <?php while ( have_posts() ) : the_post(); ?>
                  <?php get_template_part( 'content', 'type' ); ?>
                <?php endwhile; // end of the loop. ?>



Tuesday, December 4, 12
Conditional Statements




                * could have just used   if(is_singular()) { ... }


                 http://codex.wordpress.org/Conditional_Tags
Tuesday, December 4, 12
Conditional Statements




                 http://codex.wordpress.org/Conditional_Tags

Tuesday, December 4, 12
Theme: Fuctions.php
                    • Custom Background
                    • Custom Headers
                    • Navigation Menus
                    • Post Thembnails
                    • Post Formats
                    • wp_enqueue your css and javascript
                                      http://codex.wordpress.org/Theme_Review


Tuesday, December 4, 12
Custom Background
                    •     http://codex.wordpress.org/Custom_Backgrounds



                    • add_theme_support( 'custom-background' );




Tuesday, December 4, 12
Tuesday, December 4, 12
Custom Headers
                    •     http://codex.wordpress.org/Custom_Headers


                    • add_theme_support( 'custom-header' );
                  <img
                     src="<?php header_image(); ?>"
                     height="<?php echo get_custom_header()->height; ?>"
                     width="<?php echo get_custom_header()->width; ?>"
                     alt=""
                  />

Tuesday, December 4, 12
Tuesday, December 4, 12
Navigation Menus
                    •     http://codex.wordpress.org/Navigation_Menus


                     function register_my_menus() {
                       register_nav_menus(
                         array(
                              'header-menu' => __( 'Header Menu' ),
                              'footer-menu' => __( 'Footer Menu' )
                         ) );
                     }
                     add_action( 'init', 'register_my_menus' );


Tuesday, December 4, 12
Tuesday, December 4, 12
Post Thumbnails
                    •     Use Featured Images
                          Did you know they can have different sizes!?!
                    •     http://codex.wordpress.org/Post_Thumbnails




Tuesday, December 4, 12
Post Thumbnail
Featured Image




Tuesday, December 4, 12
Post Formats

                    • http://codex.wordpress.org/Post_Formats
                    •     add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );




Tuesday, December 4, 12
Fuctions: wp_enqueue
                  loading your css and javascript in your
                  functions not in the header or footer


                    •     Speeds up your site.

                    •     Help prevent conflicts.

                    •     use conditional statement to load javascript or
                          css only on the pages that need them.



Tuesday, December 4, 12
Fuctions: wp_enqueue




                    •     http://codex.wordpress.org/Function_Reference/
                          wp_enqueue_script

                    •     http://codex.wordpress.org/Function_Reference/
                          wp_enqueue_style
Tuesday, December 4, 12
Theme Options

                    • Logos
                    • Color Scheme
                    • Link Color
                    • Fonts
                    • Default Layouts

Tuesday, December 4, 12
Tuesday, December 4, 12
Theme customizer/
                            Live Previewer
                    • Tryout new theme options with out
                          effecting your live site.
                    • It uses post message method
                    • http://ottopress.com
                     • http://tinyurl.com/6wkqhbm
                     • http://tinyurl.com/d5flsay

Tuesday, December 4, 12
Tuesday, December 4, 12
Plugins
                    • All Custom Post Types
                    • Taxonomies
                    • Shortcodes
                    • Custom Write Panels
                    • Widgets
                     Naming Plugins
                     theme-name-custom-post-types
                     theme-name-shortcodes

Tuesday, December 4, 12
Plugins: Custom Post Type




Tuesday, December 4, 12
Plugins: Shortcodes
                    •     Create shortcodes to handle simple functions.(like small loops)

                    •     If the theme is turned off, all the custom loops would still work.

                    •     Allows for easy reuse for the client

                    •     Shortcodes empower users to take control of there site.

                    •     Always make a cheat sheet

                          Example
                          [loop tag="anything" show="3"]


                          <?php echo do_shortcode("[shortcode]"); ?>



Tuesday, December 4, 12
Tuesday, December 4, 12
Plugins: Custom
   Write Panels
    Only add custom Write
    panel, it to the post types
    that need it. Even if that
    means making a new
    custom post type.

   http://codex.wordpress.org/
   Function_Reference/add_meta_box

Tuesday, December 4, 12
Widgets

                    • http://codex.wordpress.org/Widgets_API
                    • http://justintadlock.com
                     • http://tinyurl.com/p6sk7e



Tuesday, December 4, 12
Plugin & Widgets:
                              White labeled
                          •   Create generic plugins for easy reuse
                          •   Not my business name.
                              •   Clients Client
                          •   Resale

                          Example: DFYPress-blog-widget
                          simple post widget that shows title, thumb
                          and the excerpt
Tuesday, December 4, 12
Coding Standards


                    • http://make.wordpress.org/core/handbook/
                          coding-standards/




Tuesday, December 4, 12
Coding Standards: CSS


                          “Group like properties together,
                          especially if you have a lot of them.”

                                                            – Nacin



                 http://make.wordpress.org/core/handbook/coding-standards/css/


Tuesday, December 4, 12
Coding Standards: CSS

                    • clean, easy to read and quick to edit
                    • 0 not 0px
                    • Media Queries at the bottom
                    • Table of context
                    • Commit your code

Tuesday, December 4, 12
Media Queries
                    •     Media queries allow us to gracefully degrade the
                          DOM for different screen sizes.

                    •     Test above and below the break-point.

                    •     keep media queries grouped by media
                          at the bottom of the stylesheet.

                    •     Rule sets for media queries should
                          be indented one level in.
                          Example:
                          @media all and (max-width: 699px) and (min-width: 520px) {
                           
                                 /* Your selectors */
                                .class {}
                          }

Tuesday, December 4, 12
Coding Standards: PHP
                    • Important: You should omit the closing
                          PHP tag at the end of a file. If you do not,
                          make sure you remove trailing whitespace.


                    • Use tabs and not spaces.
                    • http://make.wordpress.org/core/handbook/
                          coding-standards/


Tuesday, December 4, 12
Coding Standards:
                               Plugins
                    •     Avoid touching the database directly.

                    •     Avoid adding Tables

                    •     Ask your self, “Is there a defined function that can get the data already?”

                    •     Database abstraction
                          (using functions instead of queries)

                    •     Post Meta is the preferred method; use it when possible/practical.

                    •     Try storing your plugin's data in WordPress' Post Meta (Custom Fields).

                    •     If you need to make a new table…
                          http://codex.wordpress.org/Creating_Tables_with_Plugins




Tuesday, December 4, 12
Coding Standards:
                              Security
                    • Keep Files up today.
                    • Never uses Admin
                    • http://codex.wordpress.org/
                          Hardening_WordPress
                    • http://codex.wordpress.org/Security_FAQ

Tuesday, December 4, 12
Code Quality

                    •     Turn on wp-config.php: define(WP_DEBUG, true);

                    •     Themes must not generate any errors. - js, html, php any

                    •     Themes are recommended to utilize current recognized
                          version(s) of (X)HTML and CSS,

                    •     Test: W3C XHTML Validator + W3C CSS Validator

                    •     Test: W3C XHTML+CSS Validator (Unicorn)




Tuesday, December 4, 12
Other Plugins:
                            Premium
                    • Gravity Forms
                    • MapPress
                    • UberMenu
                    • sliders(one you like)
                    • Event Calendar Pro
                    • e-Commerce(the one you hate the lest)
Tuesday, December 4, 12
Other Plugins: Free
        •      WordPress Database Backup - http://wordpress.org/extend/plugins/wp-db-backup/

        •      Column Shortcodes - http://wordpress.org/extend/plugins/column-shortcodes/

        •      Google Analytics for WordPress - http://wordpress.org/extend/plugins/google-
               analytics-for-wordpress/

        •      jetpack - ;c ( - http://wordpress.org/extend/plugins/jetpack/

        •      Post Types Order - http://wordpress.org/extend/plugins/post-types-order/

        •      User Role Editor - http://wordpress.org/extend/plugins/user-role-editor/

                      All plugins listed above can be found on my
                      Favorite plugins list on my WordPress profile.
                      http://profiles.wordpress.org/easilyamused/
Tuesday, December 4, 12
Other Plugins: Free
             •      Taxonomy Widget - http://wordpress.org/extend/plugins/taxonomy-widget/screenshots/

             •      Taxonomy Images - http://wordpress.org/extend/plugins/taxonomy-images/

             •      Wordpress Page Widgets - http://wordpress.org/extend/plugins/wp-page-widget/

             •      Widget Logic - http://wordpress.org/extend/plugins/widget-logic/

             •      WordPress SEO by Yoast - http://wordpress.org/extend/plugins/wordpress-seo/

             •      Contact Form 7 - http://wordpress.org/extend/plugins/contact-form-7/

             •      WP-PageNavi - http://wordpress.org/extend/plugins/wp-pagenavi/



                      All plugins listed above can be found on my
                      Favorite plugins list on my WordPress profile.
                      http://profiles.wordpress.org/easilyamused/
Tuesday, December 4, 12
Pro Tip: Learn an
                          e-commerce system
                    •     This will kick your @$$ the first couple of times

                    •     We have sites that are selling
                          1 thing to 70,000 things

                    •     We have sites that act as POS
                          with payment plans.

                    •     We have sold vertical goods and
                          Monthly memberships.



Tuesday, December 4, 12
Pro Tip: Learn your
                  host and Stick with it.

                    • Learn Command Line
                    • All ways make Backups
                    • Make sure you get paid to mess around
                          with cheap nasty hosting.




Tuesday, December 4, 12
Pro Tip: SQL to big for a
                  Find and Replace?
                    •     When moving domains, I usually do a quick find
                          and replace on the SQL dump.

                    •     If the files to big, then I use a little perl script

                          perl -p -i.backup -e 's{find.me}{replace.me}g'
                          thefile.sql

                    •     http://jamestryon.me/2012/06/28/20mb-sql-file-
                          thats-nothin/



Tuesday, December 4, 12
Pro Tip:




Tuesday, December 4, 12
Useful Services
                    • Screener
                          http://www.screenr.com/user/JamesTryon


                    • Wp101
                          Videos of all the basics


                    • browserstack
                          http://browserstack.com/


Tuesday, December 4, 12
Learning WordPress
                    •     The Codex                    •   http://make.wordpress.org/
                                                           core/handbook/following-the-
                    •     http://make.wordpress.org/       development-process/
                          core/handbook/
                                                       •   IRC
                    •     WordPress.tv
                                                       •   Mailing list
                    •     Google ;c )
                                                       •   http://wordpress.org/news/ -
                    •     Stackoverflow                     min blog

                    •     The forums*                  •   Follow the Core Dev's




Tuesday, December 4, 12
Learning WordPress

                    •     http://make.wordpress.org/core/handbook/

                    •     http://make.wordpress.org/plugins/ - blogs

                    •     http://make.wordpress.org/themes/ - blogs

                    •     http://codex.wordpress.org/WordPress_API’s - codex

                    •     http://codex.wordpress.org/Site_Design_and_Layout
                          good starting point to get up to speed on how wordpress
                          handles everything in the theme level




Tuesday, December 4, 12
Thank You

                    • James Tryon
                    • James@EasilyAmusedInc.com
                    • http://EasilyAmusedInc.com
                    • @easilyamused


Tuesday, December 4, 12

More Related Content

What's hot

Zurb foundation
Zurb foundationZurb foundation
Zurb foundationsean_todd
 
Getting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for BeginnersGetting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for BeginnersNew Tricks
 
09-10-2012-getting-started-with-word-press
09-10-2012-getting-started-with-word-press09-10-2012-getting-started-with-word-press
09-10-2012-getting-started-with-word-pressJerome Miller
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.Jacob Martella
 
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 ThemeCreating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 ThemeAcquia
 
Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015John A. Walsh
 
Responsive Web Design using ZURB Foundation
Responsive Web Design using ZURB FoundationResponsive Web Design using ZURB Foundation
Responsive Web Design using ZURB FoundationSolTech, Inc.
 
DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...
DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...
DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...James Moughon
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreCreating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreSuzanne Dergacheva
 
Battle of the Front-End Frameworks: Bootstrap vs. Foundation
Battle of the Front-End Frameworks: Bootstrap vs. FoundationBattle of the Front-End Frameworks: Bootstrap vs. Foundation
Battle of the Front-End Frameworks: Bootstrap vs. FoundationRachel Cherry
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterDoris Chen
 
How WordPress Themes Changed the World - 2011
How WordPress Themes Changed the World - 2011How WordPress Themes Changed the World - 2011
How WordPress Themes Changed the World - 2011Michael Kimb Jones
 
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2Acquia
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build themDick Olsson
 
DrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to DrupalDrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to DrupalRod Martin
 
Designing & Developing for Content in WordPress
Designing & Developing for Content in WordPressDesigning & Developing for Content in WordPress
Designing & Developing for Content in WordPressdiane_kinney
 
WCBos13 intermediate workshop
WCBos13 intermediate workshopWCBos13 intermediate workshop
WCBos13 intermediate workshopBoston WordPress
 
Learning PHP for Drupal Theming, DC Chicago 2009
Learning PHP for Drupal Theming, DC Chicago 2009Learning PHP for Drupal Theming, DC Chicago 2009
Learning PHP for Drupal Theming, DC Chicago 2009Emma Jane Hogbin Westby
 
Rockford WordPress Meetup - Child Themes
Rockford WordPress Meetup - Child ThemesRockford WordPress Meetup - Child Themes
Rockford WordPress Meetup - Child ThemesAndrew Wikel
 

What's hot (20)

Zurb foundation
Zurb foundationZurb foundation
Zurb foundation
 
Getting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for BeginnersGetting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for Beginners
 
09-10-2012-getting-started-with-word-press
09-10-2012-getting-started-with-word-press09-10-2012-getting-started-with-word-press
09-10-2012-getting-started-with-word-press
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.
 
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 ThemeCreating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
Creating Responsive Drupal Sites with Zen Grids and the Zen 5 Theme
 
Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015Managing WordPress Websites - Training Course - Feb 2015
Managing WordPress Websites - Training Course - Feb 2015
 
Responsive Web Design using ZURB Foundation
Responsive Web Design using ZURB FoundationResponsive Web Design using ZURB Foundation
Responsive Web Design using ZURB Foundation
 
DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...
DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...
DrupalCon Austin 2014 Implement Foundation or Other Front-End Frameworks in Y...
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreCreating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
 
Battle of the Front-End Frameworks: Bootstrap vs. Foundation
Battle of the Front-End Frameworks: Bootstrap vs. FoundationBattle of the Front-End Frameworks: Bootstrap vs. Foundation
Battle of the Front-End Frameworks: Bootstrap vs. Foundation
 
Using Core Themes in Drupal 8
Using Core Themes in Drupal 8Using Core Themes in Drupal 8
Using Core Themes in Drupal 8
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
 
How WordPress Themes Changed the World - 2011
How WordPress Themes Changed the World - 2011How WordPress Themes Changed the World - 2011
How WordPress Themes Changed the World - 2011
 
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2Ready. Set. Drupal! An Intro to Drupal 8, Part 2
Ready. Set. Drupal! An Intro to Drupal 8, Part 2
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
 
DrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to DrupalDrupalCon Austin - Absolute Beginner's Guide to Drupal
DrupalCon Austin - Absolute Beginner's Guide to Drupal
 
Designing & Developing for Content in WordPress
Designing & Developing for Content in WordPressDesigning & Developing for Content in WordPress
Designing & Developing for Content in WordPress
 
WCBos13 intermediate workshop
WCBos13 intermediate workshopWCBos13 intermediate workshop
WCBos13 intermediate workshop
 
Learning PHP for Drupal Theming, DC Chicago 2009
Learning PHP for Drupal Theming, DC Chicago 2009Learning PHP for Drupal Theming, DC Chicago 2009
Learning PHP for Drupal Theming, DC Chicago 2009
 
Rockford WordPress Meetup - Child Themes
Rockford WordPress Meetup - Child ThemesRockford WordPress Meetup - Child Themes
Rockford WordPress Meetup - Child Themes
 

Viewers also liked (7)

Theme development mac
Theme development macTheme development mac
Theme development mac
 
Understanding Your Project Before You Start
Understanding Your Project Before You StartUnderstanding Your Project Before You Start
Understanding Your Project Before You Start
 
What's New in WordPress 3.6 - BarCamp Orlando 2013
What's New in WordPress 3.6 - BarCamp Orlando 2013What's New in WordPress 3.6 - BarCamp Orlando 2013
What's New in WordPress 3.6 - BarCamp Orlando 2013
 
WordPress media library - Going Outside the Instructionsmedia library
WordPress media library - Going Outside the Instructionsmedia libraryWordPress media library - Going Outside the Instructionsmedia library
WordPress media library - Going Outside the Instructionsmedia library
 
Discovery Phase: Planing Your Web Project
Discovery Phase: Planing Your Web ProjectDiscovery Phase: Planing Your Web Project
Discovery Phase: Planing Your Web Project
 
Pagpapantig
PagpapantigPagpapantig
Pagpapantig
 
Building a Website The Easy Way With Wordpress
Building a Website The Easy Way With WordpressBuilding a Website The Easy Way With Wordpress
Building a Website The Easy Way With Wordpress
 

Similar to Best Practices in Theme Development - WordCamp Orlando 2012

WordPress Themes Demystified
WordPress Themes DemystifiedWordPress Themes Demystified
WordPress Themes DemystifiedChris Burgess
 
Child Theme Frameworks
Child Theme FrameworksChild Theme Frameworks
Child Theme Frameworksryngrn
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016David Brattoli
 
How to select, install and customize a WordPress theme
How to select, install and customize a WordPress themeHow to select, install and customize a WordPress theme
How to select, install and customize a WordPress themeStefanie Drucker
 
Choosing the Right WordPress Theme
Choosing the Right WordPress ThemeChoosing the Right WordPress Theme
Choosing the Right WordPress ThemeChris Burgess
 
Ten Things You Should Know About WordPress
Ten Things You Should Know About WordPressTen Things You Should Know About WordPress
Ten Things You Should Know About WordPresssereedmedia
 
Tech 802: Web Design Part 2
Tech 802: Web Design Part 2Tech 802: Web Design Part 2
Tech 802: Web Design Part 2somisguided
 
Rapid WordPress Theme Development
Rapid WordPress Theme DevelopmentRapid WordPress Theme Development
Rapid WordPress Theme DevelopmentJosh Williams
 
WordPress Theme Basics
WordPress Theme BasicsWordPress Theme Basics
WordPress Theme BasicsJen Jamar
 
Bb Tour ANZ 2017 - Workshop - Enhancing Learn CSS
Bb Tour ANZ 2017 - Workshop - Enhancing Learn CSSBb Tour ANZ 2017 - Workshop - Enhancing Learn CSS
Bb Tour ANZ 2017 - Workshop - Enhancing Learn CSSBlackboard APAC
 
Wordpress website development
Wordpress website developmentWordpress website development
Wordpress website developmentJohn Faust
 
WCLV - Introduction to child themes
WCLV - Introduction to child themesWCLV - Introduction to child themes
WCLV - Introduction to child themesvegasgeek
 
April 2016 - Atlanta WordPress Users Group - Child Themes
April 2016 - Atlanta WordPress Users Group - Child ThemesApril 2016 - Atlanta WordPress Users Group - Child Themes
April 2016 - Atlanta WordPress Users Group - Child ThemesEric Sembrat
 
Drupal 6-performance-tips-slideshare
Drupal 6-performance-tips-slideshareDrupal 6-performance-tips-slideshare
Drupal 6-performance-tips-slideshareTrevor James
 
WordPress Theme Reviewers Team
WordPress Theme Reviewers TeamWordPress Theme Reviewers Team
WordPress Theme Reviewers TeamMario Peshev
 
Rapid WordPress theme development
Rapid WordPress theme developmentRapid WordPress theme development
Rapid WordPress theme developmentJonny Allbut
 
WordPress Intermediate Workshop
WordPress Intermediate WorkshopWordPress Intermediate Workshop
WordPress Intermediate WorkshopThe Toolbox, Inc.
 

Similar to Best Practices in Theme Development - WordCamp Orlando 2012 (20)

Intro to Wordpress
Intro to WordpressIntro to Wordpress
Intro to Wordpress
 
WordPress Themes Demystified
WordPress Themes DemystifiedWordPress Themes Demystified
WordPress Themes Demystified
 
Child Theme Frameworks
Child Theme FrameworksChild Theme Frameworks
Child Theme Frameworks
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016
 
How to select, install and customize a WordPress theme
How to select, install and customize a WordPress themeHow to select, install and customize a WordPress theme
How to select, install and customize a WordPress theme
 
Choosing the Right WordPress Theme
Choosing the Right WordPress ThemeChoosing the Right WordPress Theme
Choosing the Right WordPress Theme
 
Ten Things You Should Know About WordPress
Ten Things You Should Know About WordPressTen Things You Should Know About WordPress
Ten Things You Should Know About WordPress
 
Tech 802: Web Design Part 2
Tech 802: Web Design Part 2Tech 802: Web Design Part 2
Tech 802: Web Design Part 2
 
Rapid WordPress Theme Development
Rapid WordPress Theme DevelopmentRapid WordPress Theme Development
Rapid WordPress Theme Development
 
Evaluating Base Themes
Evaluating Base ThemesEvaluating Base Themes
Evaluating Base Themes
 
WordPress Theme Basics
WordPress Theme BasicsWordPress Theme Basics
WordPress Theme Basics
 
Efficient theming in Drupal
Efficient theming in DrupalEfficient theming in Drupal
Efficient theming in Drupal
 
Bb Tour ANZ 2017 - Workshop - Enhancing Learn CSS
Bb Tour ANZ 2017 - Workshop - Enhancing Learn CSSBb Tour ANZ 2017 - Workshop - Enhancing Learn CSS
Bb Tour ANZ 2017 - Workshop - Enhancing Learn CSS
 
Wordpress website development
Wordpress website developmentWordpress website development
Wordpress website development
 
WCLV - Introduction to child themes
WCLV - Introduction to child themesWCLV - Introduction to child themes
WCLV - Introduction to child themes
 
April 2016 - Atlanta WordPress Users Group - Child Themes
April 2016 - Atlanta WordPress Users Group - Child ThemesApril 2016 - Atlanta WordPress Users Group - Child Themes
April 2016 - Atlanta WordPress Users Group - Child Themes
 
Drupal 6-performance-tips-slideshare
Drupal 6-performance-tips-slideshareDrupal 6-performance-tips-slideshare
Drupal 6-performance-tips-slideshare
 
WordPress Theme Reviewers Team
WordPress Theme Reviewers TeamWordPress Theme Reviewers Team
WordPress Theme Reviewers Team
 
Rapid WordPress theme development
Rapid WordPress theme developmentRapid WordPress theme development
Rapid WordPress theme development
 
WordPress Intermediate Workshop
WordPress Intermediate WorkshopWordPress Intermediate Workshop
WordPress Intermediate Workshop
 

Recently uploaded

Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130Suhani Kapoor
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...babafaisel
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130Suhani Kapoor
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...Call Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Call Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Call Girls in Nagpur High Profile
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Delhi Call girls
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfAmirYakdi
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts ServiceVVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Servicearoranaina404
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️soniya singh
 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxmirandajeremy200221
 
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...Call Girls in Nagpur High Profile
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Douxkojalkojal131
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfParomita Roy
 

Recently uploaded (20)

Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 
꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...
꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...
꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...
 
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
 
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts ServiceVVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptx
 
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...Booking open Available Pune Call Girls Kirkatwadi  6297143586 Call Hot Indian...
Booking open Available Pune Call Girls Kirkatwadi 6297143586 Call Hot Indian...
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
 

Best Practices in Theme Development - WordCamp Orlando 2012

  • 1. Best Practices in Client Theme Development By James Tryon Tuesday, December 4, 12
  • 2. Who is James Tryon • Creative Director of Easily Amused, Inc. • We specialize in Branding & Custom WordPress Design/Development. • Personally been in the biz since 99 • Overflow work from Other Studios • Work as Other Companies full Creative/ Development Team. Tuesday, December 4, 12
  • 3. Some of the Brand I have Worked With • Sprint • Proactive • Peabody • A lot of colleges • Nemours • PBS Tuesday, December 4, 12
  • 4. Things We have Made with WordPress • e-Commerce • Landing pages • Job boards • Holiday cards • School directory • CMS/Brochure • Networks • Blogs Tuesday, December 4, 12
  • 5. Overall Goals • Your clients should be able to edit all content on their site. • Think about your clients work flow - make it simple. • Always Think about Future Growth. • Your client should not need you when your done. • Things should not brake when Design Changes. Tuesday, December 4, 12
  • 6. How I build out a site 1. Stand up my Dev instance 6. Add sidebars as needed 2. Remove stock data 7. basic css for placement 3. Turn on .htaccess/permalinks 8. Create Custom Post types 4. Publish all pages from Site Map 9. Add plugins as needed 5. Build out all Main Nav 10. Theme Simplest to Hardest Tuesday, December 4, 12
  • 7. Theme’s • Know when to make something a theme setting, Widgets or Part of the Page template/theme layer. • If its a Main feature, could be a widget, shortcode or Theme Template? And could it be reused on the site or Other? • Widgetable area can be anywhere, not just the Sidebars. • http://codex.wordpress.org/Theme_Review Review for list of required files, Hooks and Navigation. Tuesday, December 4, 12
  • 8. Themes: Type of Themes • Framework • Can be ready in min, themes mostly done. • Child Theme • For overriding small changes or Just CSS • Starter Them - http://underscores.me • for fully custom client work, this is the best way to go. Tuesday, December 4, 12
  • 9. Template Hierarchy • http://codex.wordpress.org/Template_Hierarchy Tuesday, December 4, 12
  • 10. Themes: What Should Be Where If it adds function to the site, then it should be a plugin. If its aesthetics related, it should be in the Themes Options. If there is unique page level list, loops or nav’s create shortcodes. If its a new feature for a sidebar, make a widget. Shortcodes can be moved around and should always work. This allow for clean upgrades and quick redesigns. This also keeps the Theme layer much cleaner and simpler. Tuesday, December 4, 12
  • 11. If you can reuse it - Move it. Best Case - move your code to a plugin. Make a content-type.php file for the custom loop <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', 'type' ); ?> <?php endwhile; // end of the loop. ?> Tuesday, December 4, 12
  • 12. Conditional Statements * could have just used if(is_singular()) { ... } http://codex.wordpress.org/Conditional_Tags Tuesday, December 4, 12
  • 13. Conditional Statements http://codex.wordpress.org/Conditional_Tags Tuesday, December 4, 12
  • 14. Theme: Fuctions.php • Custom Background • Custom Headers • Navigation Menus • Post Thembnails • Post Formats • wp_enqueue your css and javascript http://codex.wordpress.org/Theme_Review Tuesday, December 4, 12
  • 15. Custom Background • http://codex.wordpress.org/Custom_Backgrounds • add_theme_support( 'custom-background' ); Tuesday, December 4, 12
  • 17. Custom Headers • http://codex.wordpress.org/Custom_Headers • add_theme_support( 'custom-header' ); <img src="<?php header_image(); ?>" height="<?php echo get_custom_header()->height; ?>" width="<?php echo get_custom_header()->width; ?>" alt="" /> Tuesday, December 4, 12
  • 19. Navigation Menus • http://codex.wordpress.org/Navigation_Menus function register_my_menus() { register_nav_menus( array( 'header-menu' => __( 'Header Menu' ), 'footer-menu' => __( 'Footer Menu' ) ) ); } add_action( 'init', 'register_my_menus' ); Tuesday, December 4, 12
  • 21. Post Thumbnails • Use Featured Images Did you know they can have different sizes!?! • http://codex.wordpress.org/Post_Thumbnails Tuesday, December 4, 12
  • 23. Post Formats • http://codex.wordpress.org/Post_Formats • add_theme_support( 'post-formats', array( 'aside', 'gallery' ) ); Tuesday, December 4, 12
  • 24. Fuctions: wp_enqueue loading your css and javascript in your functions not in the header or footer • Speeds up your site. • Help prevent conflicts. • use conditional statement to load javascript or css only on the pages that need them. Tuesday, December 4, 12
  • 25. Fuctions: wp_enqueue • http://codex.wordpress.org/Function_Reference/ wp_enqueue_script • http://codex.wordpress.org/Function_Reference/ wp_enqueue_style Tuesday, December 4, 12
  • 26. Theme Options • Logos • Color Scheme • Link Color • Fonts • Default Layouts Tuesday, December 4, 12
  • 28. Theme customizer/ Live Previewer • Tryout new theme options with out effecting your live site. • It uses post message method • http://ottopress.com • http://tinyurl.com/6wkqhbm • http://tinyurl.com/d5flsay Tuesday, December 4, 12
  • 30. Plugins • All Custom Post Types • Taxonomies • Shortcodes • Custom Write Panels • Widgets Naming Plugins theme-name-custom-post-types theme-name-shortcodes Tuesday, December 4, 12
  • 31. Plugins: Custom Post Type Tuesday, December 4, 12
  • 32. Plugins: Shortcodes • Create shortcodes to handle simple functions.(like small loops) • If the theme is turned off, all the custom loops would still work. • Allows for easy reuse for the client • Shortcodes empower users to take control of there site. • Always make a cheat sheet Example [loop tag="anything" show="3"] <?php echo do_shortcode("[shortcode]"); ?> Tuesday, December 4, 12
  • 34. Plugins: Custom Write Panels Only add custom Write panel, it to the post types that need it. Even if that means making a new custom post type. http://codex.wordpress.org/ Function_Reference/add_meta_box Tuesday, December 4, 12
  • 35. Widgets • http://codex.wordpress.org/Widgets_API • http://justintadlock.com • http://tinyurl.com/p6sk7e Tuesday, December 4, 12
  • 36. Plugin & Widgets: White labeled • Create generic plugins for easy reuse • Not my business name. • Clients Client • Resale Example: DFYPress-blog-widget simple post widget that shows title, thumb and the excerpt Tuesday, December 4, 12
  • 37. Coding Standards • http://make.wordpress.org/core/handbook/ coding-standards/ Tuesday, December 4, 12
  • 38. Coding Standards: CSS “Group like properties together, especially if you have a lot of them.” – Nacin http://make.wordpress.org/core/handbook/coding-standards/css/ Tuesday, December 4, 12
  • 39. Coding Standards: CSS • clean, easy to read and quick to edit • 0 not 0px • Media Queries at the bottom • Table of context • Commit your code Tuesday, December 4, 12
  • 40. Media Queries • Media queries allow us to gracefully degrade the DOM for different screen sizes. • Test above and below the break-point. • keep media queries grouped by media at the bottom of the stylesheet. • Rule sets for media queries should be indented one level in. Example: @media all and (max-width: 699px) and (min-width: 520px) {          /* Your selectors */  .class {} } Tuesday, December 4, 12
  • 41. Coding Standards: PHP • Important: You should omit the closing PHP tag at the end of a file. If you do not, make sure you remove trailing whitespace. • Use tabs and not spaces. • http://make.wordpress.org/core/handbook/ coding-standards/ Tuesday, December 4, 12
  • 42. Coding Standards: Plugins • Avoid touching the database directly. • Avoid adding Tables • Ask your self, “Is there a defined function that can get the data already?” • Database abstraction (using functions instead of queries) • Post Meta is the preferred method; use it when possible/practical. • Try storing your plugin's data in WordPress' Post Meta (Custom Fields). • If you need to make a new table… http://codex.wordpress.org/Creating_Tables_with_Plugins Tuesday, December 4, 12
  • 43. Coding Standards: Security • Keep Files up today. • Never uses Admin • http://codex.wordpress.org/ Hardening_WordPress • http://codex.wordpress.org/Security_FAQ Tuesday, December 4, 12
  • 44. Code Quality • Turn on wp-config.php: define(WP_DEBUG, true); • Themes must not generate any errors. - js, html, php any • Themes are recommended to utilize current recognized version(s) of (X)HTML and CSS, • Test: W3C XHTML Validator + W3C CSS Validator • Test: W3C XHTML+CSS Validator (Unicorn) Tuesday, December 4, 12
  • 45. Other Plugins: Premium • Gravity Forms • MapPress • UberMenu • sliders(one you like) • Event Calendar Pro • e-Commerce(the one you hate the lest) Tuesday, December 4, 12
  • 46. Other Plugins: Free • WordPress Database Backup - http://wordpress.org/extend/plugins/wp-db-backup/ • Column Shortcodes - http://wordpress.org/extend/plugins/column-shortcodes/ • Google Analytics for WordPress - http://wordpress.org/extend/plugins/google- analytics-for-wordpress/ • jetpack - ;c ( - http://wordpress.org/extend/plugins/jetpack/ • Post Types Order - http://wordpress.org/extend/plugins/post-types-order/ • User Role Editor - http://wordpress.org/extend/plugins/user-role-editor/ All plugins listed above can be found on my Favorite plugins list on my WordPress profile. http://profiles.wordpress.org/easilyamused/ Tuesday, December 4, 12
  • 47. Other Plugins: Free • Taxonomy Widget - http://wordpress.org/extend/plugins/taxonomy-widget/screenshots/ • Taxonomy Images - http://wordpress.org/extend/plugins/taxonomy-images/ • Wordpress Page Widgets - http://wordpress.org/extend/plugins/wp-page-widget/ • Widget Logic - http://wordpress.org/extend/plugins/widget-logic/ • WordPress SEO by Yoast - http://wordpress.org/extend/plugins/wordpress-seo/ • Contact Form 7 - http://wordpress.org/extend/plugins/contact-form-7/ • WP-PageNavi - http://wordpress.org/extend/plugins/wp-pagenavi/ All plugins listed above can be found on my Favorite plugins list on my WordPress profile. http://profiles.wordpress.org/easilyamused/ Tuesday, December 4, 12
  • 48. Pro Tip: Learn an e-commerce system • This will kick your @$$ the first couple of times • We have sites that are selling 1 thing to 70,000 things • We have sites that act as POS with payment plans. • We have sold vertical goods and Monthly memberships. Tuesday, December 4, 12
  • 49. Pro Tip: Learn your host and Stick with it. • Learn Command Line • All ways make Backups • Make sure you get paid to mess around with cheap nasty hosting. Tuesday, December 4, 12
  • 50. Pro Tip: SQL to big for a Find and Replace? • When moving domains, I usually do a quick find and replace on the SQL dump. • If the files to big, then I use a little perl script perl -p -i.backup -e 's{find.me}{replace.me}g' thefile.sql • http://jamestryon.me/2012/06/28/20mb-sql-file- thats-nothin/ Tuesday, December 4, 12
  • 52. Useful Services • Screener http://www.screenr.com/user/JamesTryon • Wp101 Videos of all the basics • browserstack http://browserstack.com/ Tuesday, December 4, 12
  • 53. Learning WordPress • The Codex • http://make.wordpress.org/ core/handbook/following-the- • http://make.wordpress.org/ development-process/ core/handbook/ • IRC • WordPress.tv • Mailing list • Google ;c ) • http://wordpress.org/news/ - • Stackoverflow min blog • The forums* • Follow the Core Dev's Tuesday, December 4, 12
  • 54. Learning WordPress • http://make.wordpress.org/core/handbook/ • http://make.wordpress.org/plugins/ - blogs • http://make.wordpress.org/themes/ - blogs • http://codex.wordpress.org/WordPress_API’s - codex • http://codex.wordpress.org/Site_Design_and_Layout good starting point to get up to speed on how wordpress handles everything in the theme level Tuesday, December 4, 12
  • 55. Thank You • James Tryon • James@EasilyAmusedInc.com • http://EasilyAmusedInc.com • @easilyamused Tuesday, December 4, 12