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

Conditional Love - Using WordPress Conditional Tags to Write More Effective Themes

Apr 11, 2017

Download

Technology

Christian Nolen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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