25
Templating WordPress Konstantin Kovshenin Automattic

Templating WordPress

Embed Size (px)

DESCRIPTION

At WordCamp Sofia 2013

Citation preview

Page 1: Templating WordPress

Templating WordPressKonstantin KovsheninAutomattic

Page 2: Templating WordPress
Page 3: Templating WordPress
Page 4: Templating WordPress

author-$nicename.phpauthor-$id.phpauthor.phparchive.phppaged.phpindex.php

Page 5: Templating WordPress

$templates = array( 'foo.php', 'bar.php', 'baz.php',);$template = locate_template( $templates );

Page 6: Templating WordPress

function get_sidebar( $name = null ) { $templates = array(); if ( '' !== $name ) $templates[] = "sidebar-{$name}.php"; $templates[] = 'sidebar.php';

locate_template( $templates, true );}

Page 7: Templating WordPress

get_sidebar( 'left' );// sidebar-left.php// sidebar.php

Page 8: Templating WordPress

get_header( 'foo' );// header-foo.php// header.php

get_footer( 'bar' );// footer-bar.php// footer.php

Page 9: Templating WordPress

get_template_part( 'foo', 'bar' );// foo-bar.php// foo.php

Page 10: Templating WordPress

get_template_part( 'content', get_post_format() );

// content-gallery.php// content-quote.php// content-image.php// ...// content.php

Page 11: Templating WordPress

template-loader.php

Page 12: Templating WordPress

if ( is_404() && $template = get_404_template() ) : elseif ( is_category() && $template = get_category_template() ) : elseif ( is_tag() && $template = get_tag_template() ) : elseif ( is_author() && $template = get_author_template() ) : elseif ( is_date() && $template = get_date_template() ) : elseif ( is_archive() && $template = get_archive_template() ) : elseif ( is_paged() && $template = get_paged_template() ) : else : $template = get_index_template(); endif;

if($template=apply_filters('template_include',$template)) include( $template );

Page 13: Templating WordPress

if ( is_404() && $template = get_404_template() ) : elseif ( is_category() && $template = get_category_template() ) : elseif ( is_tag() && $template = get_tag_template() ) : elseif ( is_author() && $template = get_author_template() ) : elseif ( is_date() && $template = get_date_template() ) : elseif ( is_archive() && $template = get_archive_template() ) : elseif ( is_paged() && $template = get_paged_template() ) : else : $template = get_index_template(); endif;

if($template=apply_filters('template_include',$template)) include( $template );

Page 14: Templating WordPress

if ( is_404() && $template = get_404_template() ) : elseif ( is_category() && $template = get_category_template() ) : elseif ( is_tag() && $template = get_tag_template() ) : elseif ( is_author() && $template = get_author_template() ) : elseif ( is_date() && $template = get_date_template() ) : elseif ( is_archive() && $template = get_archive_template() ) : elseif ( is_paged() && $template = get_paged_template() ) : else : $template = get_index_template(); endif;

if($template=apply_filters('template_include',$template)) include( $template );

Page 15: Templating WordPress

if ( is_404() && $template = get_404_template() ) : elseif ( is_category() && $template = get_category_template() ) : elseif ( is_tag() && $template = get_tag_template() ) : elseif ( is_author() && $template = get_author_template() ) : elseif ( is_date() && $template = get_date_template() ) : elseif ( is_archive() && $template = get_archive_template() ) : elseif ( is_paged() && $template = get_paged_template() ) : else : $template = get_index_template(); endif;

if($template=apply_filters('template_include', $template ) ) include( $template );

Page 16: Templating WordPress

// get_author_template()

$templates[] = "author-{$author->nicename}.php";$templates[] = "author-{$author->ID}.php";$templates[] = 'author.php';

$template = locate_template( $templates );

Page 17: Templating WordPress

if ( is_404() && $template = get_404_template() ) : elseif ( is_category() && $template = get_category_template() ) : elseif ( is_tag() && $template = get_tag_template() ) : elseif ( is_author() && $template = get_author_template() ) : elseif ( is_date() && $template = get_date_template() ) : elseif ( is_archive() && $template = get_archive_template() ) : elseif ( is_paged() && $template = get_paged_template() ) : else : $template = get_index_template(); endif;

if($template=apply_filters('template_include',$template)) include( $template );

Page 18: Templating WordPress

if($template=apply_filters( 'template_include', $template ) ) include( $template );

Page 19: Templating WordPress

function my_template_include( $template ) { if ( my_is_maintenance() && $located = locate_template( 'maintenance.php' ) ) $template = $located;

return $template;}add_filter('template_include', 'my_template_include' );

Page 20: Templating WordPress

locate_template( array( 'foo.php', 'bar.php', 'baz.php' ) );

// child/foo.php// parent/foo.php// child/bar.php// parent/bar.php// child/baz.php// parent/baz.php

Page 21: Templating WordPress

locate_template( 'related-posts.php', true );// child/related-posts.php// parent/related-posts.php

// vs: require get_template_directory() . 'related-posts.php';

Page 22: Templating WordPress

wp-includes/template-loader.phpwp-includes/general-template.phpwp-includes/template.php

Page 23: Templating WordPress

kovshenin.com/wcsof2013

Page 24: Templating WordPress
Page 25: Templating WordPress