developing custom wordpress themes for clients

59
Developing Custom Themes for Clients

Upload: steven-slack

Post on 08-May-2015

1.338 views

Category:

Technology


2 download

DESCRIPTION

Should you develop custom themes for clients? When is it necessary? Why should you build custom themes for clients? Things that will be covered in this talk include, starting a theme from scratch, theme boilerplates, working with clients through the process, cost, performance, properly planning theme architecture around clients content, integrating with plugins and custom plugins, presentation vs functionality, updates and maintenance, shipping and installing the theme, training clients, populating site with content, and getting paid!!

TRANSCRIPT

Page 1: Developing Custom WordPress Themes for Clients

Developing Custom Themes for Clients

Page 2: Developing Custom WordPress Themes for Clients

Steven Slackfreelance Web Developer @ S2 Web

@slacktronics2webpress.com

Page 3: Developing Custom WordPress Themes for Clients

1mundoreal.org

Rio de Janeiro - 2007

Page 4: Developing Custom WordPress Themes for Clients

#1 rule in creating custom themes for clients:

Caring!

Page 5: Developing Custom WordPress Themes for Clients

What is custom?

Page 6: Developing Custom WordPress Themes for Clients

Tailor madeA custom theme is built specifically to meet the needs of your client’s business or project.

Page 7: Developing Custom WordPress Themes for Clients

Planning

icon by Björn Andersson, from The Noun Project

Page 8: Developing Custom WordPress Themes for Clients

Purpose & Goals

Page 9: Developing Custom WordPress Themes for Clients

ContentDetermining context

Page 10: Developing Custom WordPress Themes for Clients

Determine hierarchy of site navigation and structure

Site Architecture

Page 11: Developing Custom WordPress Themes for Clients

Determine hierarchy of site navigation and structure

Site Architecture

custom post types, taxonomies, featured images, custom fields, sliders, widget areas, theme

options, etc...

Page 12: Developing Custom WordPress Themes for Clients

Plan out the features

Page 13: Developing Custom WordPress Themes for Clients

Do you really need to build a custom theme?

Page 14: Developing Custom WordPress Themes for Clients

You may need a custom theme if:● You need to present different types of content in a unique way● You need to present a plugins presentation in a certain way● To Create a Unique look to the WP theme● To take advantage of templates, template tags, and the WordPress Loop

to generate different website results and looks.● To provide alternative templates for specific site features, such as category

pages and search result pages.● To quickly switch between two site layouts, or to take advantage of a

Theme or style switcher to allow site owners to change the look of your site.

● To provide “some” theme options for custom presentation● To take advantage of custom fields and meta data.

Page 15: Developing Custom WordPress Themes for Clients

Determining Cost

Page 16: Developing Custom WordPress Themes for Clients

● How much does it cost? “It depends”

● Try it out - Scope out a project as best you can, track your hours to determine cost for future projects

● “One size fits all” doesn’t apply - different types of themes are going to have different prices

● Stay on track - avoid scope creep and put language about changes and modifications in the contract.

Page 17: Developing Custom WordPress Themes for Clients

Time to make something!!

Page 18: Developing Custom WordPress Themes for Clients

● Work off of site architecture / wireframe

● Design Preference - Browser? Photoshop?

● This is only one portion of the design process - not a finished product

Designing the site

Page 19: Developing Custom WordPress Themes for Clients

DevelopmentThere are several ways to begin developing custom themes:

1. Child Themes

2. Theme Frameworks

3. Starter themes

Page 20: Developing Custom WordPress Themes for Clients

Child Themes“A WordPress child theme is a theme that inherits the functionality of another theme, called the parent theme.” - Codex

● Inherits parent theme functionality● Good for simple theme modifications - add theme support, custom

backgrounds, changing colors, etc…● keep customization separate from parent theme core functionality● allow parent themes to be updated without destroying your modifications● take advantage of effort and testing put into parent theme● save on development time; no need to recreate the wheel● are a great way to get started to learn about theme development

Page 21: Developing Custom WordPress Themes for Clients

Child Theme ConsiderationsParent theme may contain tons of features which you do not need

Page 22: Developing Custom WordPress Themes for Clients

Theme Frameworks“A ‘drop-in’ code library that is used to facilitate

development of a Theme” - Codex

● Developers can leverage a framework’s built-in code, options, plug-ins, and themes from which to develop.

● Eliminates the need to re-invent the wheel for each project.

● Decrease time spent developing a theme

Page 23: Developing Custom WordPress Themes for Clients

A few popular frameworks:

● Builder by iThemes

● Canvas by WooThemes

● Genesis by StudioPress

● Hybrid Core by Justin Tadlock

● Thesis by DIYThemes

Review of 10 popular frameworks - torquemag.io/review-10-frameworks

Page 24: Developing Custom WordPress Themes for Clients

Theme Framework Considerations:● Adds a layer of complexity to WordPress● More to manage, more to update, and a sometimes a bulkier

admin. ● Plugin compatibility● Some frameworks charge for support and updates● Unused features and options

Page 25: Developing Custom WordPress Themes for Clients

Starter ThemesBase themes with all the essential files and

functions required for a WordPress theme but with minimal to no styles.

Page 26: Developing Custom WordPress Themes for Clients

A few places to start:

● Underscores - underscores.me

● Roots - roots.io

● Bones - themble.com/bones

Page 27: Developing Custom WordPress Themes for Clients

Starter theme considerations

Choosing a starter theme to work with is up to your preference and depends on the way you like to work.

Example: Roots is built with Twitter Bootstrap and uses LESS. Bones is based on the HTML5 Boilerplate and is ready for LESS or SASS development.

Using a starter theme gives you control over what features you want to add. The world is at your fingertips.

You will need some time and skills to build a custom theme with a starter theme

Page 28: Developing Custom WordPress Themes for Clients

Building the custom theme

Page 29: Developing Custom WordPress Themes for Clients

Theme Options● Keep them to a minimum, if possible

● Theme options should affect display not functionality.

● Use the theme customizer

● Use WordPress Options API

Page 30: Developing Custom WordPress Themes for Clients

Presentation and Functionality

Generally, when we refer to functionality in WordPress we are speaking of plugins while themes handle the presentation.

Page 31: Developing Custom WordPress Themes for Clients

FunctionsAvoid the temptation to put A LOT of functionality in your functions.php file

Create a library with specific functions

Page 32: Developing Custom WordPress Themes for Clients

FunctionalityE-Commerce

Front-end Registration

Portfolio

Directory

Slider

Advanced Search Shortcodes

Events Calendar

Page 33: Developing Custom WordPress Themes for Clients

Required Plugins?How about suggested plugins?

TGM Plugin Activation

The best way to require and recommend plugins for WordPress themes (and other plugins)

tgmpluginactivation.com

Page 34: Developing Custom WordPress Themes for Clients

Put extra functions into a plugin.

Page 35: Developing Custom WordPress Themes for Clients

Data Portability

Page 36: Developing Custom WordPress Themes for Clients

Organization & Maintenance

Portable PluginEasier to debugSeparation of concerns

Page 37: Developing Custom WordPress Themes for Clients

Wrap plugin functions in conditionals in the theme

<?php // if Advanced Custom Fields function exists and the

field is not empty display the field

if ( function_exists( 'get_field' ) ) {

if( get_field( 'some_custom_field' ) ) {

the_field( 'some_custom_field' );

}

}

?>

If the plugin is disabled you will avoid receiving error messages or a blank screen.

Page 38: Developing Custom WordPress Themes for Clients

shortcodes

Take your shortcodes with you

Page 39: Developing Custom WordPress Themes for Clients

What does the business owner get?

Page 40: Developing Custom WordPress Themes for Clients

A well organized WordPress environment will have a cost benefit to

the client, business, or individual

Page 41: Developing Custom WordPress Themes for Clients

A more stable environment will save you time on debugging, fixing problems or moving data,

hence saving your client money.

Page 42: Developing Custom WordPress Themes for Clients

Best Practices

Page 43: Developing Custom WordPress Themes for Clients

Follow WordPress Coding Standardsmake.wordpress.org/core/handbook/coding-standards

Page 44: Developing Custom WordPress Themes for Clients

/** * For developers: WordPress debugging mode. * * Change this to true to enable the display of notices during development. * It is strongly recommended that plugin and theme developers use WP_DEBUG * in their development environments. */

define('WP_DEBUG', true );

Debug!● Set WP_debug to true in your wp_config.php file.

● Use developer plugins - wordpress.org/plugins/developer

Page 45: Developing Custom WordPress Themes for Clients

Use the theme check plugin

Page 46: Developing Custom WordPress Themes for Clients
Page 47: Developing Custom WordPress Themes for Clients
Page 48: Developing Custom WordPress Themes for Clients

● minimize http requests● minify scripts and styles● reduce image sizes● use sprites in your theme images

Performance

Page 49: Developing Custom WordPress Themes for Clients

Reviewing the theme with the client

Page 50: Developing Custom WordPress Themes for Clients

“Can we make this area a scroll area?”“I want this to be a dropdown box.”“When you click on this button I want it to go to the contact page.”“I don’t really understand what all this Lorem Ipsum is?”“That wasn’t in the mockup.”“That looked different in the mockup.”“These aren’t my photos!”“What are we looking at here? I don’t understand.”

Page 51: Developing Custom WordPress Themes for Clients

● Load the clients content into WordPress. Hire someone if necessary

● Present client site on your test server (staging site)

● If they already have a WP site - export their data and import it into your development environment

● Disable search engine visibility in Settings => Reading

Present the theme to the client with their content

Page 52: Developing Custom WordPress Themes for Clients

Fine tune the theme

Page 53: Developing Custom WordPress Themes for Clients

Deploy!--Take the custom theme live

Page 54: Developing Custom WordPress Themes for Clients

● Use an under construction plugin while prepping the site.

● Upload theme and plugins

● Upload data if needed.

● Configure theme and plugin settings

● Double check everything

Page 55: Developing Custom WordPress Themes for Clients

Training, Support, and the Future

Page 56: Developing Custom WordPress Themes for Clients

● Video Tutorials - WP101.com

● PDF Guide - WP Easy Guide ( easywpguide.com )

● WP Beginner - Beginners guide to WordPress ( wpbeginner.com )

Training Resources

Page 57: Developing Custom WordPress Themes for Clients

Support ?

Page 58: Developing Custom WordPress Themes for Clients

● Managed Support - managewp.com

● Case by case bug / improvements

● Managed WordPress maintainence - fantasktic.com, wpmaintainer.com, maintainn.com

Page 59: Developing Custom WordPress Themes for Clients

Thanks !!Thoughts? Insights? Questions?