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!!
11. Site Architecture
Determine hierarchy of site navigation and structure
custom post types, taxonomies, featured images,
custom fields, sliders, widget areas, theme
options, etc...
14. 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.
16. ●
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.
18. Designing the site
● Work off of site architecture / wireframe
● Design Preference - Browser? Photoshop?
● This is only one portion of the design process not a finished product
19. Development
There are several ways to begin developing custom themes:
1. Child Themes
2. Theme Frameworks
3. Starter themes
20. 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
22. 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
23. 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
24. 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
25. Starter Themes
Base themes with all the essential files and
functions required for a WordPress theme but with
minimal to no styles.
26. A few places to start:
●
Underscores
- underscores.me
●
Roots
- roots.io
●
Bones
- themble.com/bones
27. 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
29. Theme Options
● Keep them to a minimum, if possible
● Theme options should affect display
not functionality.
● Use the theme customizer
● Use WordPress Options API
33. 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
37. 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.
44. Debug!
●
Set WP_debug to true in your wp_config.php file.
●
Use developer plugins - wordpress.org/plugins/developer
/**
* 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 );
50. “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.”
51. Present the theme to the
client with their content
● 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
54. ● 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
58. ● Managed Support - managewp.com
● Case by case bug / improvements
● Managed WordPress maintainence fantasktic.com, wpmaintainer.com,
maintainn.com