conditional love - using wordpress conditional tags to write more effective themes

55
Conditional Love Using WordPress Conditional Tags to Write More Eective Themes WordCamp Jacksonville 2016 @cwpnolen @emagineusa #wcjax

Upload: christian-nolen

Post on 11-Apr-2017

396 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

Conditional LoveUsing WordPress Conditional Tags to

Write More Effective Themes

WordCamp Jacksonville 2016@cwpnolen @emagineusa#wcjax

Page 2: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Who Am I?Christian Nolen

Technical Director for emagine WordPress Developer

@cwpnolen

Page 3: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

We’re Hiring

http://www.emagine.com/careers/

Page 4: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Page 5: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

All Developers are Lazy

Page 6: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

@*#&-%*!

Page 7: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Page 8: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

can be used in your Template files to change what content is displayed and how that content is displayed on a particular page depending on what conditions that page matches

CONDITIONAL TAGS

Page 9: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

1. the state in which something exists

CONDITION(\kən-ˈdi-shən\)noun

2. a state of being

Page 10: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

I JUST DROPPED IN To See What Condition My Condition Was In

WordPress

Page 11: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Page 12: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

1. the state in which something exists

CONDITION(\kən-ˈdi-shən\)noun

2. a state of being

Page 13: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Are You Hungry?

Page 14: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Are You Tired?

Page 15: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Are You Sad?

Page 16: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Are You Tired?or ( || )

Is it Morning?

Page 17: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Are You Drunk? and (&&)

Do You Feel Sick?

Page 18: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

allow you to ask one or many yes/no (true/false) questions to WordPress for the purpose of changing content, presentation or functionality

CONDITIONAL TAGS

Page 19: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Template Hierarchyhttps://developer.wordpress.org/themes/basics/template-hierarchy/

Page 20: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Title: About UsSlug: about-us

Post ID: 28

Example Page

Page 21: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

tmpl-about-us.php page-about-us.php

page-28.php page.php

singular.php index.php

Page 22: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Why?

Page 23: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

We don’t want this either

Page 24: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Consolidate your templates by major functional or design requirements

Page 25: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Common Usage

Page 26: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_home() is_front_page()

Page 27: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_home() / is_front_page() if ( is_home() ) : // Load blog listing template get_template_part( 'partials', 'blog-posts' ); endif;

if ( is_front_page() ) : // Load static home page stylesheet and javascript wp_enqueue_style( 'my-registered—home-css' ); wp_enqueue_script( 'my-registered—home-js' ); endif;

Page 28: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_category() Parameters: Category ID, Name or Slug

Page 29: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_category() if ( is_category() ) : // Get Category Data $category = get_category( get_query_var( 'cat' ) ); endif;

<?php if ( is_category( 'web-development' ) ) : ?> <!—- A Geeky Image —-> <img src="http://goo.gl/8rqmrJ" alt="Nerd Image" /> <php endif; ?>

Page 30: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_active_sidebar() Parameters: Name or ID

(required)

Page 31: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_active_sidebar() if ( is_active_sidebar( 'call-to-actions' ) ) : echo '<aside class="widgets">'; dynamic_sidebar( 'call-to-actions' ); echo '</aside>'; endif;

Page 32: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_single() Parameters: Post ID, Title or Slug

Page 33: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_single()

if ( is_single( '28' ) ) : // Awesome functionality // being conditionally loaded… poorlyendif;

Page 34: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

More Common Useshas_post_thumbnail()

is_page() is_admin()

has_excerpt() is_author()

is_multisite()

Page 35: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Real World Applications

Page 36: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

All Pages on Your Client Site

Landing Page

Page 37: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

get_header( 'landing-page' );

Page 38: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_page_template() Parameter: Template Name

Page 39: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_page_template()

if ( is_page_template( 'tmpl-landing-page.php' ) ) : // Get template partial for Landing Page header get_template_part( 'partials', 'header-links-lp' );else : // Get default header links get_template_part( 'partials', 'header-links-default' ); endif;

Page 40: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Page 41: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Page 42: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

single-{post-type}-{slug}.php single-{post-type}.php

single.php singular.php

index.php

Page 43: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Posts single-{post-type}-{slug}.php single-{post-type}.php single.php singular.php index.php

Pages tmpl-about-us.php page-about-us.php

page-28.php page.php

singular.php index.php

Page 44: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_singular() Parameter: Post Type Slug

Page 45: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_singular()

if ( is_single() || is_page() || is_attachment() )

if ( is_singular() )=

Page 46: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

<article> <?php if ( is_singular( 'post' ) ) : // Get blog date, author and categories get_template_part( 'partials/blog', 'meta' ); endif;

the_content(); ?> </article>

is_singular()

Page 47: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

is_404()

Page 48: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

while ( have_posts() ) : the_post(); the_content(); endwhile; if ( is_404() ) : // The page does not exist echo 'This isn’t the page you’re looking for.’; endif;

is_404()

Page 49: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Page 50: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Make Your Own Conditional Tag

Page 51: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

function is_subpage() { global $post; if ( is_page() && $post->post_parent ) : return true; else : return false; endif; }

Page 52: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Extend WordPress Functionality

Page 53: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

add_filter( 'body_class', 'add_body_classes' );

function add_body_classes( $classes ) {

return $classes; }

if ( !is_front_page() ) $classes[] = 'interior';

if ( is_active_sidebar( 'call-to-actions' ) $classes[] = 'has-callouts'; if ( is_subpage() ) $classes[] = ‘is-subpage';

Page 54: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Additional Resources• https://codex.wordpress.org/Conditional_Tags • https://developer.wordpress.org/themes/basics/conditional-tags/ • http://code.tutsplus.com/articles/php-for-wordpress-mastering-

conditional-statements-and-tags--wp-22725 • https://docs.woothemes.com/document/conditional-tags/ • https://codex.bbpress.org/bbpress-conditional-tags/ • https://codex.buddypress.org/developer/template-tag-reference/

#is_-functions

Page 55: Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

@cwpnolen @emagineusa#wcjax

Thank YouChristian Nolen

Technical Director for emagine @cwpnolen