SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Custom Layouts Without
            Using Page Templates
                                    Chip Bennett (@chip_bennett)




WordCamp Nashville 2013, 20 April 2013         Page 1 of 15   Custom Layouts Without Using Page Templates
Overview
        •      What's the problem?
                 o     Custom Content, Custom Layouts
                 o     How to Have Both
        •      Process
                 o     Define Post Custom Meta Data
                 o     Modify Template Files
                 o     Define CSS
        •      Putting it into Practice
                 o     Twenty Twelve Child Theme
        •      Out of Presentation Scope
                 o     Post Custom Meta Implementation
WordCamp Nashville 2013, 20 April 2013    Page 2 of 15   Custom Layouts Without Using Page Templates
What's the Problem?
        •      Purpose of Custom Page Templates
                o    Custom content!
                o    Archives
                o    Linkroll
                o    Sitemap
                o    Contact form
                o    Custom queries

        •      Most Common use of Custom Page Templates
                o    Layouts
                o    Full Width
                o    Different Sidebars
                o    Etc.
WordCamp Nashville 2013, 20 April 2013    Page 3 of 15   Custom Layouts Without Using Page Templates
What's the Problem?
        •     Custom Page Templates for both custom content and custom
              layout?
               o    More templates?
               o    Sitemap,
               o    Sitemap Full-Width,
               o    Sitemap Three-Column
               o    Archives,
               o    Archives Full-Width,
               o    Archives Three-Column
               o    Linkroll,
               o    Linkroll Full-Width,
               o    Linkroll Three-Column

        •     See where this is going?
WordCamp Nashville 2013, 20 April 2013      Page 4 of 15   Custom Layouts Without Using Page Templates
Alternative: Custom Post Meta Data
        •      Benefits
                o     Per-page
                o     Regardless of Page Template
                o     Page template itself is custom post meta data
                o     _wp_page_template

        •      Extra Benefits?
                o     Can be made to work with (almost) any Theme
                o     Via Child Theme, Some coding/CSS required
                o     Expand to other post-types
                o     Blog Posts, Attachments, Custom Post Types
                o     Plugin-defined page templates
                o     Expand/Dovetail with default layout options
WordCamp Nashville 2013, 20 April 2013        Page 5 of 15          Custom Layouts Without Using Page Templates
Implementation
        •       Define Layout Custom Post Meta Data
                 o      Default layout is two-column
                 o      Add a "Full Width" layout option
        •       Modify Template According to Layout
                 o      Full Width layout removes the sidebar
                 o      Content takes up resultant space
        •       Modify CSS According to Layout
                 o      Modify main-content width CSS rule



WordCamp Nashville 2013, 20 April 2013      Page 6 of 15        Custom Layouts Without Using Page Templates
Define Layout Custom Post Meta
        •       Recommended Nomenclature:
                _themename_layout
                 o      Underscore: hide from custom fields UI
                 o      Namespacing: avoid conflicts, per-Theme
        •       Reminder:
                 o      Custom Post Meta code is out of presentation scope
                 o      Working example will be provided




WordCamp Nashville 2013, 20 April 2013     Page 7 of 15     Custom Layouts Without Using Page Templates
Custom Function to Get Layout
        •       Define a function to get the current layout
                        function themename_get_layout() {
                           $layout = 'default';
                           global $post;
                           $post_layout = get_post_meta( $post->ID,
                        '_themename_layout', true );
                           if ( '' != $post_layout ) {
                               $layout = $post_layout;
                           }
                            return $layout;
                        }

        •       We'll use this in a couple places, so DRY


WordCamp Nashville 2013, 20 April 2013      Page 8 of 15     Custom Layouts Without Using Page Templates
Modify the Template
        •       Typical template file:
                        <?php
                        // Header
                        get_header();
                        // Loop
                        get_template_part( 'loop' );
                        // Sidebar
                        get_sidebar();
                        // Footer
                        get_footer();
                        ?>

        •       index.php, archive.php, etc.
        •       Child Theme: let's just modify sidebar.php
WordCamp Nashville 2013, 20 April 2013      Page 9 of 15   Custom Layouts Without Using Page Templates
Modify the Template
        •       Modifying sidebar.php
                 o      Before:
                                 <?php
                                 // Sidebar HTML Markup & PHP code
                                 ?>
                 o      After:
                                 <?php
                                 if ( 'full' == themename_get_layout() ) {
                                    return;
                                 }
                                 // Sidebar HTML Markup & PHP code
                                 ?>

        •       Adapt as needed
WordCamp Nashville 2013, 20 April 2013           Page 10 of 15       Custom Layouts Without Using Page Templates
Modify CSS
        •       Add Layout-Based Classes to <body> tag
                 o      Use body_class filter:
                        function themename_filter_body_class( $classes ) {
                           $classes[] = 'layout-' . themename_get_layout();
                           return $classes;
                        }
                        add_filter( 'body_class',
                        'themename_filter_body_class' );

        •       Result:
                        <body class="page template-default layout-full ...">

        •       Child Theme: add layout-based CSS rules:
                        body.layout-full #content {
                           width: 100%;
                        }
WordCamp Nashville 2013, 20 April 2013      Page 11 of 15      Custom Layouts Without Using Page Templates
Practical Exercise: Twenty Twelve
        •       Let's see an example
        •       Add custom layouts to Twenty Twelve
        •       Via Child Theme
        •       Child Theme Files
                 o      style.css
                 o      functions.php
                 o      sidebar.php




WordCamp Nashville 2013, 20 April 2013   Page 12 of 15   Custom Layouts Without Using Page Templates
Twenty Twelve Live
            Example
                      (Child Theme is available for download)




WordCamp Nashville 2013, 20 April 2013   Page 13 of 15   Custom Layouts Without Using Page Templates
Links and Resources
        •      Downloads
                 o     WCNash13 TwentyTwelve Child Theme
                 o     http://github.com/chipbennett/wcnash13-twentytwelve-child
                 o     Oenology Theme (advanced layout example)
                 o     http://github.com/chipbennett/oenology

        •      Codex References
                 o     http://codex.wordpress.org/Pages#Page_Templates
                 o     http://codex.wordpress.org/Function_Reference/get_post_meta
                 o     http://codex.wordpress.org/Function_Reference/update_post_meta
                 o     http://codex.wordpress.org/Function_Reference/add_meta_box
                 o     http://codex.wordpress.org/Plugin_API/Filter_Reference/body_class

        •      Presentation Slides
                 o     http://www.slideshare.net/chipbennett
WordCamp Nashville 2013, 20 April 2013              Page 14 of 15           Custom Layouts Without Using Page Templates
Feedback
        •       Questions or comments?




WordCamp Nashville 2013, 20 April 2013   Page 15 of 15   Custom Layouts Without Using Page Templates

Weitere ähnliche Inhalte

Ähnlich wie WordCamp Nashville 2013 - Custom Layouts Without Custom Page Templates

WordCamp Columbus 2013: Custom Layouts Without Using Page Templates
WordCamp Columbus 2013: Custom Layouts Without Using Page TemplatesWordCamp Columbus 2013: Custom Layouts Without Using Page Templates
WordCamp Columbus 2013: Custom Layouts Without Using Page TemplatesChip Bennett
 
How To Choose A Theme
How To Choose A ThemeHow To Choose A Theme
How To Choose A ThemeNicky Pink
 
Drupaldelphia Shortcuts Cheats And Cheap Stunts
Drupaldelphia  Shortcuts Cheats And Cheap StuntsDrupaldelphia  Shortcuts Cheats And Cheap Stunts
Drupaldelphia Shortcuts Cheats And Cheap Stuntscanarymason
 
Drupal 8 theming deep dive
Drupal 8 theming deep diveDrupal 8 theming deep dive
Drupal 8 theming deep diveRomain Jarraud
 
WordPress Theming Best Practices
WordPress Theming Best PracticesWordPress Theming Best Practices
WordPress Theming Best PracticesBrian Krogsgard
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationPeter Macinkovic
 
Writing an extensible web testing framework ready for the cloud slide share
Writing an extensible web testing framework ready for the cloud   slide shareWriting an extensible web testing framework ready for the cloud   slide share
Writing an extensible web testing framework ready for the cloud slide shareMike Ensor
 
Getting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for BeginnersGetting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for BeginnersNew Tricks
 
Theme frameworks & child themes
Theme frameworks & child themesTheme frameworks & child themes
Theme frameworks & child themesChris Olbekson
 
New Adventures in Drupal Theming
New Adventures in Drupal ThemingNew Adventures in Drupal Theming
New Adventures in Drupal ThemingJohn Albin Wilkins
 
Child Theme Frameworks
Child Theme FrameworksChild Theme Frameworks
Child Theme Frameworksryngrn
 
Getting started with CSS frameworks using Zurb foundation
Getting started with CSS frameworks using Zurb foundationGetting started with CSS frameworks using Zurb foundation
Getting started with CSS frameworks using Zurb foundationMelanie Archer
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.Jacob Martella
 
WordPress: After The Install
WordPress: After The InstallWordPress: After The Install
WordPress: After The InstallWordPress NYC
 
Developing Custom WordPress Themes for Clients
Developing Custom WordPress Themes for ClientsDeveloping Custom WordPress Themes for Clients
Developing Custom WordPress Themes for ClientsSteven Slack
 
Drupal8 themingdeepdive drupaldevdays-montpellier17042015
Drupal8 themingdeepdive drupaldevdays-montpellier17042015Drupal8 themingdeepdive drupaldevdays-montpellier17042015
Drupal8 themingdeepdive drupaldevdays-montpellier17042015Romain Jarraud
 

Ähnlich wie WordCamp Nashville 2013 - Custom Layouts Without Custom Page Templates (20)

WordCamp Columbus 2013: Custom Layouts Without Using Page Templates
WordCamp Columbus 2013: Custom Layouts Without Using Page TemplatesWordCamp Columbus 2013: Custom Layouts Without Using Page Templates
WordCamp Columbus 2013: Custom Layouts Without Using Page Templates
 
Efficient theming in Drupal
Efficient theming in DrupalEfficient theming in Drupal
Efficient theming in Drupal
 
How To Choose A Theme
How To Choose A ThemeHow To Choose A Theme
How To Choose A Theme
 
Drupaldelphia Shortcuts Cheats And Cheap Stunts
Drupaldelphia  Shortcuts Cheats And Cheap StuntsDrupaldelphia  Shortcuts Cheats And Cheap Stunts
Drupaldelphia Shortcuts Cheats And Cheap Stunts
 
Drupal 8 theming deep dive
Drupal 8 theming deep diveDrupal 8 theming deep dive
Drupal 8 theming deep dive
 
WordPress Theming Best Practices
WordPress Theming Best PracticesWordPress Theming Best Practices
WordPress Theming Best Practices
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine Optimisation
 
Writing an extensible web testing framework ready for the cloud slide share
Writing an extensible web testing framework ready for the cloud   slide shareWriting an extensible web testing framework ready for the cloud   slide share
Writing an extensible web testing framework ready for the cloud slide share
 
Getting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for BeginnersGetting Started With WordPress Themes for Beginners
Getting Started With WordPress Themes for Beginners
 
Nanocon Taiwan
Nanocon TaiwanNanocon Taiwan
Nanocon Taiwan
 
Theme frameworks & child themes
Theme frameworks & child themesTheme frameworks & child themes
Theme frameworks & child themes
 
New Adventures in Drupal Theming
New Adventures in Drupal ThemingNew Adventures in Drupal Theming
New Adventures in Drupal Theming
 
Forensic Theming for Drupal
Forensic Theming for DrupalForensic Theming for Drupal
Forensic Theming for Drupal
 
Child Theme Frameworks
Child Theme FrameworksChild Theme Frameworks
Child Theme Frameworks
 
Getting started with CSS frameworks using Zurb foundation
Getting started with CSS frameworks using Zurb foundationGetting started with CSS frameworks using Zurb foundation
Getting started with CSS frameworks using Zurb foundation
 
Forensic Theming - DrupalCon London
Forensic Theming - DrupalCon LondonForensic Theming - DrupalCon London
Forensic Theming - DrupalCon London
 
Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.Keeping Your Themes and Plugins Organized.
Keeping Your Themes and Plugins Organized.
 
WordPress: After The Install
WordPress: After The InstallWordPress: After The Install
WordPress: After The Install
 
Developing Custom WordPress Themes for Clients
Developing Custom WordPress Themes for ClientsDeveloping Custom WordPress Themes for Clients
Developing Custom WordPress Themes for Clients
 
Drupal8 themingdeepdive drupaldevdays-montpellier17042015
Drupal8 themingdeepdive drupaldevdays-montpellier17042015Drupal8 themingdeepdive drupaldevdays-montpellier17042015
Drupal8 themingdeepdive drupaldevdays-montpellier17042015
 

Kürzlich hochgeladen

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

WordCamp Nashville 2013 - Custom Layouts Without Custom Page Templates

  • 1. Custom Layouts Without Using Page Templates Chip Bennett (@chip_bennett) WordCamp Nashville 2013, 20 April 2013 Page 1 of 15 Custom Layouts Without Using Page Templates
  • 2. Overview • What's the problem? o Custom Content, Custom Layouts o How to Have Both • Process o Define Post Custom Meta Data o Modify Template Files o Define CSS • Putting it into Practice o Twenty Twelve Child Theme • Out of Presentation Scope o Post Custom Meta Implementation WordCamp Nashville 2013, 20 April 2013 Page 2 of 15 Custom Layouts Without Using Page Templates
  • 3. What's the Problem? • Purpose of Custom Page Templates o Custom content! o Archives o Linkroll o Sitemap o Contact form o Custom queries • Most Common use of Custom Page Templates o Layouts o Full Width o Different Sidebars o Etc. WordCamp Nashville 2013, 20 April 2013 Page 3 of 15 Custom Layouts Without Using Page Templates
  • 4. What's the Problem? • Custom Page Templates for both custom content and custom layout? o More templates? o Sitemap, o Sitemap Full-Width, o Sitemap Three-Column o Archives, o Archives Full-Width, o Archives Three-Column o Linkroll, o Linkroll Full-Width, o Linkroll Three-Column • See where this is going? WordCamp Nashville 2013, 20 April 2013 Page 4 of 15 Custom Layouts Without Using Page Templates
  • 5. Alternative: Custom Post Meta Data • Benefits o Per-page o Regardless of Page Template o Page template itself is custom post meta data o _wp_page_template • Extra Benefits? o Can be made to work with (almost) any Theme o Via Child Theme, Some coding/CSS required o Expand to other post-types o Blog Posts, Attachments, Custom Post Types o Plugin-defined page templates o Expand/Dovetail with default layout options WordCamp Nashville 2013, 20 April 2013 Page 5 of 15 Custom Layouts Without Using Page Templates
  • 6. Implementation • Define Layout Custom Post Meta Data o Default layout is two-column o Add a "Full Width" layout option • Modify Template According to Layout o Full Width layout removes the sidebar o Content takes up resultant space • Modify CSS According to Layout o Modify main-content width CSS rule WordCamp Nashville 2013, 20 April 2013 Page 6 of 15 Custom Layouts Without Using Page Templates
  • 7. Define Layout Custom Post Meta • Recommended Nomenclature: _themename_layout o Underscore: hide from custom fields UI o Namespacing: avoid conflicts, per-Theme • Reminder: o Custom Post Meta code is out of presentation scope o Working example will be provided WordCamp Nashville 2013, 20 April 2013 Page 7 of 15 Custom Layouts Without Using Page Templates
  • 8. Custom Function to Get Layout • Define a function to get the current layout function themename_get_layout() { $layout = 'default'; global $post; $post_layout = get_post_meta( $post->ID, '_themename_layout', true ); if ( '' != $post_layout ) { $layout = $post_layout; } return $layout; } • We'll use this in a couple places, so DRY WordCamp Nashville 2013, 20 April 2013 Page 8 of 15 Custom Layouts Without Using Page Templates
  • 9. Modify the Template • Typical template file: <?php // Header get_header(); // Loop get_template_part( 'loop' ); // Sidebar get_sidebar(); // Footer get_footer(); ?> • index.php, archive.php, etc. • Child Theme: let's just modify sidebar.php WordCamp Nashville 2013, 20 April 2013 Page 9 of 15 Custom Layouts Without Using Page Templates
  • 10. Modify the Template • Modifying sidebar.php o Before: <?php // Sidebar HTML Markup & PHP code ?> o After: <?php if ( 'full' == themename_get_layout() ) { return; } // Sidebar HTML Markup & PHP code ?> • Adapt as needed WordCamp Nashville 2013, 20 April 2013 Page 10 of 15 Custom Layouts Without Using Page Templates
  • 11. Modify CSS • Add Layout-Based Classes to <body> tag o Use body_class filter: function themename_filter_body_class( $classes ) { $classes[] = 'layout-' . themename_get_layout(); return $classes; } add_filter( 'body_class', 'themename_filter_body_class' ); • Result: <body class="page template-default layout-full ..."> • Child Theme: add layout-based CSS rules: body.layout-full #content { width: 100%; } WordCamp Nashville 2013, 20 April 2013 Page 11 of 15 Custom Layouts Without Using Page Templates
  • 12. Practical Exercise: Twenty Twelve • Let's see an example • Add custom layouts to Twenty Twelve • Via Child Theme • Child Theme Files o style.css o functions.php o sidebar.php WordCamp Nashville 2013, 20 April 2013 Page 12 of 15 Custom Layouts Without Using Page Templates
  • 13. Twenty Twelve Live Example (Child Theme is available for download) WordCamp Nashville 2013, 20 April 2013 Page 13 of 15 Custom Layouts Without Using Page Templates
  • 14. Links and Resources • Downloads o WCNash13 TwentyTwelve Child Theme o http://github.com/chipbennett/wcnash13-twentytwelve-child o Oenology Theme (advanced layout example) o http://github.com/chipbennett/oenology • Codex References o http://codex.wordpress.org/Pages#Page_Templates o http://codex.wordpress.org/Function_Reference/get_post_meta o http://codex.wordpress.org/Function_Reference/update_post_meta o http://codex.wordpress.org/Function_Reference/add_meta_box o http://codex.wordpress.org/Plugin_API/Filter_Reference/body_class • Presentation Slides o http://www.slideshare.net/chipbennett WordCamp Nashville 2013, 20 April 2013 Page 14 of 15 Custom Layouts Without Using Page Templates
  • 15. Feedback • Questions or comments? WordCamp Nashville 2013, 20 April 2013 Page 15 of 15 Custom Layouts Without Using Page Templates