20
#edugu r uSummi t WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

Embed Size (px)

DESCRIPTION

#eduguruSummit FRAMEWORKS, PARENTS & CHILDREN Parent Theme A base theme that sets up functionality Can be extended Must be written to allow overrides Child Theme Extends a parent theme Can carry over or override elements from parent Cannot be extended without plugins Framework Not a full theme; more of a plugin for a theme Allows creation of parent and child themes with shared functionality

Citation preview

Page 1: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

WORDPRESS TH

EMES 101

S O M E S I M P L E S T A R T E R T I P S F O R WO R D P R E S S T H E M E S

dotEduGuru Summit 2013

Page 2: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

DIFFERENT T

YPES OF

THEMES

F R A M E W O R K S , PA R E N T S A

N D CH I L

D TH E M E S

Page 3: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

FRAMEWORKS, PARENTS & CHILDREN• Parent Theme• A base theme that sets up functionality• Can be extended• Must be written to allow overrides

• Child Theme• Extends a parent theme• Can carry over or override elements from parent• Cannot be extended without plugins

• Framework• Not a full theme; more of a plugin for a theme• Allows creation of parent and child themes with shared functionality

http://justintadlock.com/archives/2010/08/16/frameworks-parent-child-and-grandchild-themes

Page 4: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

EXAMPLESHybrid Core is a framework. - http://

themehybrid.com/hybrid-core • No theme structure• Full package goes inside parent themeGenesis “Framework” is a parent theme - http://www.studiopress.com/features • Has a theme structure• Can be used on its own•Does not go inside of another themeTwentyTwelve is a parent theme - http://wordpress.org/extend/themes/twentytwelve • Although it has less of a framework built in, same concept as Genesis“Education” is a child theme - http://my.studiopress.com/themes/education/ • Cannot be used without Genesis (parent theme) installed

Page 5: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

STARTI

NG A THEME

B A S I C E

L E M E N T S OF A

L L TH E M E S

Page 6: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

REQUIRED FILESCSS Stylesheet (style.css)*• Implements the CSS for the theme• Not included by default• enqueue it in functions.php or • use <link href=“<?php bloginfo( ‘stylesheet_uri’ ) ?>”/> in <head>

• Provides base information about the theme• Theme name, URI, version, license, etc. (http://

codex.wordpress.org/Theme_Development#Theme_Stylesheet)Index (index.php)• Implements the structure of the theme• Can be split out into multiple files• Acts as fallback for all pages*** - style.css is the only file required in a child theme; all others fallback to parent theme** - the Template Hierarchy governs which files are used for each page; index is the final fallback

Page 7: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

TYPICAL THEME FILESTheme Functions (functions.php)• Central location for function, variable, constant defintions used in theme• Included automatically by theme engine before after_setup_theme actionDefault Sidebar (sidebar.php)•Outputs default sidebar (get_sidebar())Default WordPress Loop (loop.php)•Not included automatically by theme• Used to separate “the loop”*** from other structureComments Template (comments.php)• List of comments and comment form; use comments_template() to includeSearch (search.php)• Search results template; automatically used on search results page

Page 8: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

MOAR THEME FILESAutomatic Template Files (page.php, 404.php, single.php)• Used automatically based on type of page being shown; •Overrides index.php (see the Template Hierarchy)Miscellaneous Files (sidebar-[slug].php, etc.)• Include with the get_template_part( ‘sidebar’, ‘[slug]’ ) function• Sidebar, header and footer files can be included with:• get_sidebar( ‘[slug]’ )• get_header( ‘[slug]’ )• get_footer( ‘[slug]’ )Header and Footer (header.php, footer.php)• Not included automatically • Call with get_header() & get_footer()

Page 9: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

TEMPLATE HIERARCHY

H O W WO R D P R E S S D

E C I DE S W

H A T FI L

E TO U

S E

Page 10: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

THE WORDPRESS TEMPLATE HIERARCHYWordPress automatically searches for appropriate theme

template file

Page 11: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

THE LO

OP

T H E MA I N

CO N T E N T A

R E A OF Y

O U R TH E M E

Page 12: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

WHAT IS “THE LOOP”?The Loop outputs the main content area• Loops through all matching content objectsif ( have_posts() ) : while ( have_posts() ) : the_post();// Output all of your contentendwhile; endif;have_posts() and the_post()•Global methods of main query object ($wp_query)• have_posts() generates array of “post” objects• the_post() sets global variables related to current post object

Page 13: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

OTHER “LOOP” FUNCTIONSInside the loop, various functions are available• the_title() – echoes the title of the current post• the_content() – echoes the body of the current post• the_post_thumbnail() – echoes the “featured image” for

current post

Page 14: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

MOAR LOOP TIPSIf you need to use the same query loop more than once:• Use rewind_posts() to reset the loop to be used againYou can start your own loop with a custom query:

$myquery = new WP_Query( ‘[query parameters go here]’ );

if ( $myquery->have_posts() ) : while ( $myquery->have_posts() ) : $myquery->the_post();

// Your custom loop stuff hereendwhile; endif;

• Don’t alter the global $wp_query or use query_posts() unless you know what you’re doing

• Use get_posts() or create your own loop, instead

Page 15: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

ON ONE CONDITION

U S I NG C

O N D I TI O

N A L FU N C T I O

N S I N Y

O U R

T H E M E

Page 16: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

USING CONDITIONAL FUNCTIONSIdentify where you are:• is_home() – on the default home page (or the “posts” page if set in

Settings)• is_front_page() – on the static front page (set in Settings)• is_admin() / is_network_admin() – anywhere in the admin area (not on

the login page)• is_single() / is_page() / is_attachment() / is_singular( $post_type ) –

single content entry• is_post_type_archive() – a list of content entries from a specific

content type• is_category() / is_tag() / is_tax() – a list of content entries with a

specific taxonomy• is_404() – a non-existent page• is_search() – showing the list of search results• is_feed() – is a structured feed (RSS, Atom, etc.)

Page 17: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

TESTING CONDITIONSNot just where you are, but what features are available:• has_post_thumbnail() – whether or not the “featured image” is set• has_excerpt() – whether a manual excerpt is set for the content• is_active_sidebar() – whether a widgetized area (“sidebar”) has any

widgets• has_nav_menu() – whether a custom menu location has a menu

assigned• is_multisite() – whether the site is part of a multisite network• is_plugin_active() – whether a specific plugin is active on the site• wp_script_is() & wp_style_is() – whether a script/stylesheet has been

registered, enqueued, printed, etc.

Page 18: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

PUTTI

NG THINGS

TOGETH

ER

U S I NG T

H I S K

N O W L E D G E TO B

U I LD A

TH E M E

Page 19: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

MAPPING IT OUT• Choose what to build• Full theme• Child theme – only requires style.css; all others are optional• Theme based on framework – requirements differ based on

framework• Fulfill requirements• style.css• wp_head()• wp_footer()• http://j.mp/140mlRU

• Install and test it• Don’t be afraid to split things out; use get_template_part() to

include additional theme pieces

Page 20: #eduguruSummit WORDPRESS THEMES 101 SOME SIMPLE STARTER TIPS FOR WORDPRESS THEMES dotEduGuru Summit 2013

#eduguruSum

mit

QUESTIONS? COMMENTS?Twitter: @cgrymalaWebsite(s): http://umw.edu/ (Multi-Network Setup)

http://ten-321.com/http://svn.ten-321.com/ (SVN Repo)

Email: [email protected]@ten-321.com

SpeakerRate: http://spkr8.com/s/10608

http://about.me/cgrymala