63

WordPress Theme Development for Designers

Embed Size (px)

DESCRIPTION

My half-day workshop from FOWD NYC 2009

Citation preview

Page 1: WordPress Theme Development for Designers

1

2

3

4

5

Hello

An introduction to WordPress

The core components of a theme

Using WordPress as a proper CMS

Morning tea

A portfolio powered by WordPress

Building a brand new theme

QampA discussion

900 - 915

0915 - 0930

0930 - 1000

1000 - 1030

1030 - 1100

1100 - 1130

1130 - 1200

1200 - 1230

An introduction to WordPress

Setting up WordPress on your local machine

apachefriendsorgenxampphtml

(or WAMP at wampservercom)

MAMP (OSX)

XAMPP (Windows)

mampinfo

Dummy content

Dummy content on the Starkers demo elliotjaystockscomstarkersdemo

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 2: WordPress Theme Development for Designers

An introduction to WordPress

Setting up WordPress on your local machine

apachefriendsorgenxampphtml

(or WAMP at wampservercom)

MAMP (OSX)

XAMPP (Windows)

mampinfo

Dummy content

Dummy content on the Starkers demo elliotjaystockscomstarkersdemo

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 3: WordPress Theme Development for Designers

Setting up WordPress on your local machine

apachefriendsorgenxampphtml

(or WAMP at wampservercom)

MAMP (OSX)

XAMPP (Windows)

mampinfo

Dummy content

Dummy content on the Starkers demo elliotjaystockscomstarkersdemo

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 4: WordPress Theme Development for Designers

apachefriendsorgenxampphtml

(or WAMP at wampservercom)

MAMP (OSX)

XAMPP (Windows)

mampinfo

Dummy content

Dummy content on the Starkers demo elliotjaystockscomstarkersdemo

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 5: WordPress Theme Development for Designers

Dummy content

Dummy content on the Starkers demo elliotjaystockscomstarkersdemo

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 6: WordPress Theme Development for Designers

Dummy content on the Starkers demo elliotjaystockscomstarkersdemo

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 7: WordPress Theme Development for Designers

themeshapercomwordpress-theme-development-tools-tutorial

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 8: WordPress Theme Development for Designers

The basics of WordPress

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 9: WordPress Theme Development for Designers

The dashboard on a fresh WordPress installation

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 10: WordPress Theme Development for Designers

The core components of a theme

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 11: WordPress Theme Development for Designers

The template files in the lsquodefaultrsquo theme

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 12: WordPress Theme Development for Designers

The only files you actually need in a theme

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 13: WordPress Theme Development for Designers

indexphp

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 14: WordPress Theme Development for Designers

The lsquolooprsquo

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 15: WordPress Theme Development for Designers

Use WordPress to power your entire site

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 16: WordPress Theme Development for Designers

Utilise the simple stuff

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 17: WordPress Theme Development for Designers

Built-in elements you can use

Post title

Category title description

Use naming conventions to avoid repeating yourself

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 18: WordPress Theme Development for Designers

Custom fields

Custom fields for content (to call in images etc)

Custom fields for definitions(should this be featured on the home page etc)

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 19: WordPress Theme Development for Designers

Conditional tags

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 20: WordPress Theme Development for Designers

Template tags

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 21: WordPress Theme Development for Designers

Basic ifelse statements

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 22: WordPress Theme Development for Designers

Say it in English

What am I trying to accomplish

If a certain situation occurs do Xif it doesnrsquot occur do Y

Whatrsquos the easiest way to accomplish this

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 23: WordPress Theme Development for Designers

START

If the page slug is design-network use the word lsquoDesignrsquo as my network name

but if the page slug is photography-network use the word lsquoPhotographyrsquo as my network name

or if itrsquos neither of those just use the word lsquoDefaultrsquo as my network name

END

Think of things in plain English

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 24: WordPress Theme Development for Designers

ltphp

if (is_page(design-network)) $network=Design

elseif (is_page(photography-network)) $network=Photography

else default $network=Default

gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 25: WordPress Theme Development for Designers

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtDesignltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 26: WordPress Theme Development for Designers

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtPUT_THE_NETWORK_NAME_HEREltstronggt networklth2gt

Set up a variable you can use later on

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 27: WordPress Theme Development for Designers

lth2gt Fusion Ads delivered ltstronggt17737824ltstronggt ad impressions in July across its dedicated ltstronggtltphp echo $network gtltstronggt networklth2gt

Set up a variable you can use later on

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 28: WordPress Theme Development for Designers

START

If the page is the lsquohomersquo page use the word lsquohomersquo as my bodyrsquos classname

but if itrsquos in the lsquoportfoliorsquo category use the word lsquoportfoliorsquo as my bodyrsquos classname

unless itrsquos in the lsquospeakingrsquo category then use the word lsquospeakingrsquo as my bodyrsquos classname

or if itrsquos the lsquopublicationrsquo page use the word lsquopublicationrsquo as my bodyrsquos classname

but if itrsquos a 404 or search results page use the word lsquoresultsrsquo as my bodyrsquos classname

or if itrsquos none of the above just use the word lsquodefaultrsquo as my bodyrsquos classname

END

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 29: WordPress Theme Development for Designers

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 30: WordPress Theme Development for Designers

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_home

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 31: WordPress Theme Development for Designers

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_category

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 32: WordPress Theme Development for Designers

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_page

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 33: WordPress Theme Development for Designers

ltphp

if (is_home()) Home $bodyclass=home

elseif (is_category(portfolio)) Portfolio $bodyclass=portfolio

elseif (is_category(speaking)) Speaking $bodyclass=speaking

elseif (is_page(publication)) publication $bodyclass=publication

elseif (is_404() || is_search()) 404 or search $bodyclass=nothing

else default $bodyclass=blog

gt

Set up a variable you can use later on

is_404() || is_search

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 34: WordPress Theme Development for Designers

ltbodygt

Set up a variable you can use later on

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 35: WordPress Theme Development for Designers

ltbody class=PUT_THE_CLASSNAME_HEREgt

Set up a variable you can use later on

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 36: WordPress Theme Development for Designers

ltbody class=ltphp echo $bodyclass gtgt

Set up a variable you can use later on

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 37: WordPress Theme Development for Designers

WP Candy Template hierarchy diagram jmpwphierarchy

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 38: WordPress Theme Development for Designers

WP Candy WordPress Help Sheet jmpwphelpsheet1

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 39: WordPress Theme Development for Designers

WP Candy Advanced WordPress Help Sheet jmpwphelpsheet2

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 40: WordPress Theme Development for Designers

ltli class=bloggt lta href=httpelliotjaystockscombloggt Blog ltagtltligt

ltli class=portfoliogt lta href=httpelliotjaystockscomportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=httpelliotjaystockscomspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 41: WordPress Theme Development for Designers

ltli class=bloggt lta href=ltphp bloginfo(url) gtbloggt Blog ltagtltligt

ltli class=portfoliogt lta href=ltphp bloginfo(url) gtportfoliogt Portfolio ltagtltligt

ltli class=speakinggt lta href=ltphp bloginfo(url) gtspeakinggt Speaking ltagtltligt

Set up a variable you can use later on

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 42: WordPress Theme Development for Designers

Custom page templates

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 43: WordPress Theme Development for Designers

category-Xphp

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 44: WordPress Theme Development for Designers

Multiple singlephp templates

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 45: WordPress Theme Development for Designers

Multiple singlephp templates jmpmultiplesingle

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 46: WordPress Theme Development for Designers

Essential plugins

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 47: WordPress Theme Development for Designers

Plugins for basic use

Akismet

Author Highlight

Comment Timeout

Google XML Sitemaps

Maintenance Mode

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 48: WordPress Theme Development for Designers

Advanced plugins for CMS use

Advanced Excerpt

Duplicate Post

Improved Include Page

Top Level Categories

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 49: WordPress Theme Development for Designers

Start with an existing theme(starting from scratch = scary)

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 50: WordPress Theme Development for Designers

Integrating scriptsamp stylesheets

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 51: WordPress Theme Development for Designers

Including jQuery the right way jmpjquerywp

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 52: WordPress Theme Development for Designers

A quick word on child themes

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 53: WordPress Theme Development for Designers

A portfolio powered by WordPress

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 54: WordPress Theme Development for Designers

Building a brand new theme

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 55: WordPress Theme Development for Designers

If you liked this yoursquoll love

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 56: WordPress Theme Development for Designers

The ultimate tutorial themeshapercomwordpress-themes-templates-tutorial

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 57: WordPress Theme Development for Designers

Sexy Web Designby Elliot Jay StocksExpert reviewers Jina Bolton amp Dan Rubin

Published by SitePoint

Shameless plug

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251

Page 58: WordPress Theme Development for Designers

Thank you

elliotjaystockscom | twittercomelliotjaystocks

Pin-ups image by Mauren Veras - flickrcomphotosmauren2298724158

Paint textures from The Stock Exchange - sxchu

Set in FS Clerkenwell - fontsmithcomfont_detailsphpfont_num=251