SlideShare une entreprise Scribd logo
1  sur  50
WordCamp
                Montreal 2011


Custom Themes from Scratch using a
        Theme Framework

      @ptahdunbar - #wcmtl
Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Ptah Dunbar
   • WordPress Core Contributor
    – Over 30+ commit props
    – Worked heavily on the nav menus in 3.0
    – First patch was just over 9 months ago

   •   WordPress Consulting in Miami Beach
    – Creative WordPress Solutions
    – Office + Two partners + an intern

   •   I love to Travel
    – Aspiring World Traveler
    – First time in Canada!
    – Previously visited Atlanta, Luxembourg, Thailand, San

   • Languages
    – Currently learning spanish as well as improving french & german fluency.
Custom Themes from Scratch using a Theme Framework — @ptahdunbar                 #wcmtl
Creating a modern WordPress theme is detail work.




   For a full reference, visit:
       ➡ http://codex.wordpress.org/Theme_Development
       ➡ http://codex.wordpress.org/Theme_Review
Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Why Theme Frameworks?


               • Empowering users

               • To make theme development more fun

               • Because it’s what the cools kids do.




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
What makes a Theme Framework?

           • Functions.php
               Loaded on every page before the page is displayed


           • WordPress Plugin API
               Allows developers to “hook” into the WordPress code and execute
               functionality without editing the WordPress core files.


           • Child Theme Template Inheritance
               Child themes template files override template files from the
               parent theme.




Custom Themes from Scratch using a Theme Framework — @ptahdunbar              #wcmtl
Two Types of
                  Theme Frameworks

‣ User-based Theme Frameworks
     – Provides you with various types of options to control
       aspects of your theme without editing template files

‣ Designer/Developer-based Theme Frameworks
     – Code-oriented, tradition template system, starter-based




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Theme Framework Continuum


   User-Based                                                      DD-based Theme
Theme Frameworks                                                    Frameworks




Custom Themes from Scratch using a Theme Framework — @ptahdunbar               #wcmtl
Theme Framework Continuum

                                                                   Sandbox


   User-Based                                                      DD-based Theme
Theme Frameworks                                                    Frameworks




                                                                    Thematic




                                                                     Hybrid




Custom Themes from Scratch using a Theme Framework — @ptahdunbar               #wcmtl
Theme Framework Continuum

                                           WP Framework            Sandbox


   User-Based                                                      DD-based Theme
Theme Frameworks                                                    Frameworks




                                                                    Thematic




                                                                     Hybrid




Custom Themes from Scratch using a Theme Framework — @ptahdunbar               #wcmtl
Thesis by DIYThemes




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Headway by Headway Themes




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Genesis by StudioPress




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Sandbox theme by Scott Wallick




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Starkers by Elliot Jay Stocks




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Whiteboard by Bold Perspecive Labs




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Top 10
              WP Framework
                Features

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                            has
              Organization

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Organization

   ‣ THEME_CSS
   ‣ THEME_JS
   ‣ THEME_IMG

   ‣   CHILD_THEME_CSS
   ‣   CHILD_THEME_JS
   ‣   CHILD_THEME_IMG



   ‣ Add your own:
   ‣ wpf_templating_constants




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                          does
  Rapid Development


Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Rapid Theming with WP Framework

‣ Stylesheets
     – reset.css
     – typography.css
     – master.css

‣ Javascripting
     – scripts.js with jQuery loaded


‣ Custom Functions
     – custom-functions.php

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                            has
             HTML5/CSS3

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                            has
    Device Detection

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                        has a
      CSS Framework

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
RYO.GS
                            Roll Your Own Grid System

         <link rel="stylesheet" type="text/css" media="all"
         href="<?php echo ryogs( '18', '28', '28', '28' ); ?>" />

                      1. Number of Columns (in pixels)
                      2. Width of Columns (in pixels)
                      3. Width of Gutters (in pixels)
                      4. Base-line height (in pixels)




Custom Themes from Scratch using a Theme Framework — @ptahdunbar    #wcmtl
CSS Grids in WP Framework




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                            has
         Theme Options

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
add_theme_support( ‘theme-options’ );




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
add_theme_support( ‘theme-options’ );




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
wpf_register_metabox( $page_slug, $id, $title, $column, $priority );




       function theme_options() {

           wpf_add_metabox(     'options',   'aioseo', 'All in one SEO', 1 );
           wpf_add_metabox(     'options',   'scripts', 'Theme Scripts', 2 );
           wpf_add_metabox(     'options',   'robots', 'General Settings', 3 );
           wpf_add_metabox(     'options',   'info', 'Theme Information', 4 );

       }




Custom Themes from Scratch using a Theme Framework — @ptahdunbar                  #wcmtl
Theme Options API
                                         Example Usage




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
wpf_add_setting( $metabox_id, $option_id, $args, $data );




wpf_add_metabox( 'options', 'general', __( 'General Settings', t() ) );
wpf_add_setting( 'general', 'textbox', array( 'type' => 'textbox', 'label' => __( 'This is a sample textbox', t() ) ) );
wpf_add_setting( 'scripts', 'textarea', array( 'type' => 'textarea', 'label' => __( 'This is a sample textarea', t() ) ) );
wpf_add_setting( 'scripts', 'checkbox', array( 'type' => 'checkbox', 'label' => __( 'This is a sample checkbox', t() ) ) );
wpf_add_setting( 'scripts', 'multi-checkbox', array( 'type' => 'checkbox', 'label' => __( 'Choose your Taste:', t() ) ),
array( 'Vanilla', 'Strawberry', 'Chocolate' ) );
wpf_add_setting( 'general', 'custom', array( 'type' => 'custom' ), __( 'This is custom! Here's an hr tag:', t() ) );
wpf_add_setting( 'aioseo', 'multi-radio', array( 'type' => 'radio', 'label' => __( 'Which Color?', t() ) ), array( 'Blue', 'Green',
'Yellow' ) );
wpf_add_setting( 'aioseo', 'select', array( 'type' => 'select', 'label' => 'Choose an option:' ), array( 'Option #1', 'Option
#2', 'Option #3' ) );
wpf_add_setting( 'general', 'multi-select', array( 'type' => 'select', 'label' => 'Choose multiple options:', 'multiple' =>
true ), array( 'Option #1', 'Option #2', 'Option #3' ) );
wpf_add_setting( 'scripts', 'upload', array( 'type' => 'upload', 'label' => 'Upload a Logo:' ) );
wpf_add_setting( 'scripts', 'color', array( 'type' => 'color', 'label' => 'Choose your Color:' ) );
wpf_add_setting( 'info', 'callback', array( 'type' => 'callback' ), 'foobar' );




 Custom Themes from Scratch using a Theme Framework — @ptahdunbar                                                         #wcmtl
Theme Options API
                                         Example Usage




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                            has
         Theme Options
             API
Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Theme Options API
                           Store global theme metadata



                      • add_theme_option();
                      • get_theme_option();
                      • update_theme_option();
                      • delete_theme_option();


Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Backend
   wpf_add_setting( 'aioseo', 'seo-title', 'checkbox',
   array( 'label' => 'Append site name to page titles' ) );




                                      Front End
      <?php get_theme_option(‘seo-title’); ?>




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                  does
          Future Proof Theming


Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Bad

    index.php file:


   <?php plugin_function_in_template(); ?>




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
GOOD
    index.php file:


   <?php do_action( ‘before_content’ ); ?>


    plugin file:


     add_action(‘before_content’,‘plugin_function_in_template’);




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
WP Framework
                                               is
                        Pluggable

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
wpf_register_class( $handle, $class );

    file: custom-functions.php
    add_action( ‘wpf_init’, ‘register_theme_classes’ );

    function register_theme_classes() {
       wpf_register_class( ‘theme’, ‘Custom_Theme’ );
    }

    class Custom_Theme extends WPF {
       function Custom_Theme() {
          $this->WPF( array(
             ‘content_width’ => 500,
             ‘text_domain’ => ‘custom-theme’,
          ) );
       }
    }



Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
wpf_register_class( ‘theme’, ‘WPF’ );

    file: class-wpf-template-tags.php

    class WPF extends WPF_Template_Tags {

        ...

        function site_title() {
        	    $args = $this->parse_attrs( $args );
        	    $tag = ( is_home() || is_front_page() ) ? 'h1' : 'div';
        	    printf( '<%s><span><a href="%s" title="%s" rel="home">%3$s</a></span></
        %1$s>', $tag, site_url('/'), esc_attr( get_bloginfo('name') ) );
        }
    }




Custom Themes from Scratch using a Theme Framework — @ptahdunbar                   #wcmtl
wpf_register_class( ‘theme’, ‘Custom_Theme’ );

 file: custom-functions.php
 add_action( ‘wpf_init’, ‘register_theme_classes’ );

 function register_theme_classes() {
    wpf_register_class( ‘theme’, ‘Custom_Theme’ );
 }

 class Custom_Theme extends WPF {
    function Custom_Theme() {
       $this->WPF( array(
           ‘content_width’ => 500,
           ‘text_domain’ => ‘custom-theme’,
       ) );
    }

     function site_title() {
        echo ‘<h1>’. get_bloginfo('name') .’<h1>’;
     }
 }


Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
wpf_register_contextual_class( $handle, $class );
 file: custom-functions.php
 add_action( ‘wpf_init’, ‘register_theme_classes’ );

 function register_theme_classes() {
    wpf_register_contextual_class( ‘assets’, ‘Theme_Assets’ );
 }

 class Theme_Assets {
    function Theme_Assets() {
       // runs on every page
    }

     function front_page() {
        // runs only on the front page
     }
 }



Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
wpf_register_contextual_class( $handle, $class );

  wpf_load_contextual_classes();                       wpf_template_hierarchy();

                                                       is_front_page()
                                                       is_home()
                                                       is_singular()
                                                       is_archive()
                                                       is_tax()
                                                       is_category()
                                                       is_tag()
                                                       is_author()
                                                       is_date()
                                                       is_year()
                                                       is_month()
                                                       get_query_var( 'w' )
                                                       is_day()
                                                       is_search()
                                                       is_404()

Custom Themes from Scratch using a Theme Framework — @ptahdunbar                   #wcmtl
WP Framework
                                  supports
                     BuddyPress

Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
Demo


Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl
That’s all folks.
                                         Questions?




Custom Themes from Scratch using a Theme Framework — @ptahdunbar   #wcmtl

Contenu connexe

Tendances

Cms & wordpress theme development 2011
Cms & wordpress theme development 2011Cms & wordpress theme development 2011
Cms & wordpress theme development 2011Dave Wallace
 
NEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityNEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityMichelle Davies (Hryvnak)
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and SecurityJoe Casabona
 
What Is WordPress and Why Is Everyone Talking About It?
What Is WordPress and Why Is Everyone Talking About It?What Is WordPress and Why Is Everyone Talking About It?
What Is WordPress and Why Is Everyone Talking About It?BobWP.com
 
Theming in WordPress - Where do I Start?
Theming in WordPress - Where do I Start?Theming in WordPress - Where do I Start?
Theming in WordPress - Where do I Start?Edmund Turbin
 
Reno-Tahoe WordCamp 2011 - WordPress End User Security - Dre Armeda
Reno-Tahoe WordCamp 2011 - WordPress End User Security - Dre ArmedaReno-Tahoe WordCamp 2011 - WordPress End User Security - Dre Armeda
Reno-Tahoe WordCamp 2011 - WordPress End User Security - Dre ArmedaDre Armeda
 
What Is WordPress and Why Is Everyone Talking About It
What Is WordPress and Why Is Everyone Talking About ItWhat Is WordPress and Why Is Everyone Talking About It
What Is WordPress and Why Is Everyone Talking About ItBobWP.com
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandEmma Jane Hogbin Westby
 
WordPress Theme Structure
WordPress Theme StructureWordPress Theme Structure
WordPress Theme Structurekeithdevon
 
Haml And Sass In 15 Minutes
Haml And Sass In 15 MinutesHaml And Sass In 15 Minutes
Haml And Sass In 15 MinutesPatrick Crowley
 
Blogging for family historians
Blogging for family historiansBlogging for family historians
Blogging for family historianshalsted1
 
Using Display Suite / Context to Build your Drupal Site
Using Display Suite / Context to Build your Drupal SiteUsing Display Suite / Context to Build your Drupal Site
Using Display Suite / Context to Build your Drupal SiteMatthew Wetmore
 
Child Theming: An Introduction to Wordpress Theme Development with Wordpres...
Child Theming: An Introduction to  Wordpress Theme Development  with Wordpres...Child Theming: An Introduction to  Wordpress Theme Development  with Wordpres...
Child Theming: An Introduction to Wordpress Theme Development with Wordpres...Aban Nesta
 
光速テーマ開発のコツ
光速テーマ開発のコツ光速テーマ開発のコツ
光速テーマ開発のコツHishikawa Takuro
 
WordCamp Raleigh 2019 - Beginner's Guide to Wordpress
WordCamp Raleigh 2019 - Beginner's Guide to WordpressWordCamp Raleigh 2019 - Beginner's Guide to Wordpress
WordCamp Raleigh 2019 - Beginner's Guide to WordpressConvinsys
 
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】Mami Kuroki
 

Tendances (20)

Cms & wordpress theme development 2011
Cms & wordpress theme development 2011Cms & wordpress theme development 2011
Cms & wordpress theme development 2011
 
Bootstrap 3 Basic - Bangkok WordPress Meetup
Bootstrap 3 Basic - Bangkok WordPress MeetupBootstrap 3 Basic - Bangkok WordPress Meetup
Bootstrap 3 Basic - Bangkok WordPress Meetup
 
NEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & SecurityNEPA BlogCon 2013 - WordPress Customization & Security
NEPA BlogCon 2013 - WordPress Customization & Security
 
WordPress Customization and Security
WordPress Customization and SecurityWordPress Customization and Security
WordPress Customization and Security
 
What Is WordPress and Why Is Everyone Talking About It?
What Is WordPress and Why Is Everyone Talking About It?What Is WordPress and Why Is Everyone Talking About It?
What Is WordPress and Why Is Everyone Talking About It?
 
&lt;?php + WordPress
&lt;?php + WordPress&lt;?php + WordPress
&lt;?php + WordPress
 
Drupal Flyover, CMS Expo
Drupal Flyover, CMS ExpoDrupal Flyover, CMS Expo
Drupal Flyover, CMS Expo
 
Theming in WordPress - Where do I Start?
Theming in WordPress - Where do I Start?Theming in WordPress - Where do I Start?
Theming in WordPress - Where do I Start?
 
Reno-Tahoe WordCamp 2011 - WordPress End User Security - Dre Armeda
Reno-Tahoe WordCamp 2011 - WordPress End User Security - Dre ArmedaReno-Tahoe WordCamp 2011 - WordPress End User Security - Dre Armeda
Reno-Tahoe WordCamp 2011 - WordPress End User Security - Dre Armeda
 
Git Makes Me Angry Inside
Git Makes Me Angry InsideGit Makes Me Angry Inside
Git Makes Me Angry Inside
 
What Is WordPress and Why Is Everyone Talking About It
What Is WordPress and Why Is Everyone Talking About ItWhat Is WordPress and Why Is Everyone Talking About It
What Is WordPress and Why Is Everyone Talking About It
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days Ireland
 
WordPress Theme Structure
WordPress Theme StructureWordPress Theme Structure
WordPress Theme Structure
 
Haml And Sass In 15 Minutes
Haml And Sass In 15 MinutesHaml And Sass In 15 Minutes
Haml And Sass In 15 Minutes
 
Blogging for family historians
Blogging for family historiansBlogging for family historians
Blogging for family historians
 
Using Display Suite / Context to Build your Drupal Site
Using Display Suite / Context to Build your Drupal SiteUsing Display Suite / Context to Build your Drupal Site
Using Display Suite / Context to Build your Drupal Site
 
Child Theming: An Introduction to Wordpress Theme Development with Wordpres...
Child Theming: An Introduction to  Wordpress Theme Development  with Wordpres...Child Theming: An Introduction to  Wordpress Theme Development  with Wordpres...
Child Theming: An Introduction to Wordpress Theme Development with Wordpres...
 
光速テーマ開発のコツ
光速テーマ開発のコツ光速テーマ開発のコツ
光速テーマ開発のコツ
 
WordCamp Raleigh 2019 - Beginner's Guide to Wordpress
WordCamp Raleigh 2019 - Beginner's Guide to WordpressWordCamp Raleigh 2019 - Beginner's Guide to Wordpress
WordCamp Raleigh 2019 - Beginner's Guide to Wordpress
 
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
PHPをさわらず作る!デザイナーさんのためのWordPress【超!初級】
 

En vedette

Auca ramon llull 2
Auca ramon llull 2Auca ramon llull 2
Auca ramon llull 2Toni Blanes
 
Projecto Curricular Do Ji Vg 10 11
Projecto  Curricular Do Ji Vg 10 11Projecto  Curricular Do Ji Vg 10 11
Projecto Curricular Do Ji Vg 10 11Ana Barroca
 
Cohetería agua experimental.
Cohetería agua experimental.Cohetería agua experimental.
Cohetería agua experimental.CONALEP 177
 
Kiddicare eCommerce case study
Kiddicare eCommerce case studyKiddicare eCommerce case study
Kiddicare eCommerce case studySalmon Limited
 
Articulos,SDS
Articulos,SDSArticulos,SDS
Articulos,SDSsagygb
 
Makfry Group catalogo italiano
Makfry Group catalogo italianoMakfry Group catalogo italiano
Makfry Group catalogo italianoAli Girgin
 
Digestivo morfo2009 externo
Digestivo morfo2009 externoDigestivo morfo2009 externo
Digestivo morfo2009 externoVisualsac Best
 
ESTADISTICA DE LA NTIC
ESTADISTICA DE LA NTICESTADISTICA DE LA NTIC
ESTADISTICA DE LA NTICMAYRA PAZMIÑO
 
We Love コンビニ
We Love コンビニWe Love コンビニ
We Love コンビニbluedoragon1
 
La génesis mosaica y el Espiritismo
La génesis mosaica y el EspiritismoLa génesis mosaica y el Espiritismo
La génesis mosaica y el Espiritismocentroespirita
 
Producto1 antonio ortavazquez
Producto1 antonio ortavazquezProducto1 antonio ortavazquez
Producto1 antonio ortavazquezAnton Orta Vázq
 
Fasterner Marketing Plan 2016
Fasterner Marketing Plan 2016 Fasterner Marketing Plan 2016
Fasterner Marketing Plan 2016 Katie Si
 
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...Usama Fayyad
 
Documento de subredes_traducido_al_español
Documento de subredes_traducido_al_españolDocumento de subredes_traducido_al_español
Documento de subredes_traducido_al_españolJosue Ramon
 
Los receptores
Los receptoresLos receptores
Los receptoresgeopaloma
 
Antrag-auf-Beibehaltung
Antrag-auf-BeibehaltungAntrag-auf-Beibehaltung
Antrag-auf-BeibehaltungAlex Walke
 

En vedette (19)

Auca ramon llull 2
Auca ramon llull 2Auca ramon llull 2
Auca ramon llull 2
 
Projecto Curricular Do Ji Vg 10 11
Projecto  Curricular Do Ji Vg 10 11Projecto  Curricular Do Ji Vg 10 11
Projecto Curricular Do Ji Vg 10 11
 
La reforma laboral del PP de Rajoy
La reforma laboral del PP de RajoyLa reforma laboral del PP de Rajoy
La reforma laboral del PP de Rajoy
 
Cohetería agua experimental.
Cohetería agua experimental.Cohetería agua experimental.
Cohetería agua experimental.
 
Kiddicare eCommerce case study
Kiddicare eCommerce case studyKiddicare eCommerce case study
Kiddicare eCommerce case study
 
Articulos,SDS
Articulos,SDSArticulos,SDS
Articulos,SDS
 
Makfry Group catalogo italiano
Makfry Group catalogo italianoMakfry Group catalogo italiano
Makfry Group catalogo italiano
 
Digestivo morfo2009 externo
Digestivo morfo2009 externoDigestivo morfo2009 externo
Digestivo morfo2009 externo
 
ESTADISTICA DE LA NTIC
ESTADISTICA DE LA NTICESTADISTICA DE LA NTIC
ESTADISTICA DE LA NTIC
 
We Love コンビニ
We Love コンビニWe Love コンビニ
We Love コンビニ
 
La génesis mosaica y el Espiritismo
La génesis mosaica y el EspiritismoLa génesis mosaica y el Espiritismo
La génesis mosaica y el Espiritismo
 
Producto1 antonio ortavazquez
Producto1 antonio ortavazquezProducto1 antonio ortavazquez
Producto1 antonio ortavazquez
 
Fasterner Marketing Plan 2016
Fasterner Marketing Plan 2016 Fasterner Marketing Plan 2016
Fasterner Marketing Plan 2016
 
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
Keynote talk at Financial Times Forum - BigData and Advanced Analytics at SIB...
 
Control de lectura de pedro páramo
Control de lectura de pedro páramoControl de lectura de pedro páramo
Control de lectura de pedro páramo
 
Documento de subredes_traducido_al_español
Documento de subredes_traducido_al_españolDocumento de subredes_traducido_al_español
Documento de subredes_traducido_al_español
 
Cuadernillo de fisica
Cuadernillo de fisicaCuadernillo de fisica
Cuadernillo de fisica
 
Los receptores
Los receptoresLos receptores
Los receptores
 
Antrag-auf-Beibehaltung
Antrag-auf-BeibehaltungAntrag-auf-Beibehaltung
Antrag-auf-Beibehaltung
 

Similaire à @wcmtl

IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationVan Staub, MBA
 
Vinay Paudel: Optimizing and Speeding up a WordPress site
Vinay Paudel: Optimizing and Speeding up a WordPress siteVinay Paudel: Optimizing and Speeding up a WordPress site
Vinay Paudel: Optimizing and Speeding up a WordPress sitewpnepal
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimizationpaudelvinay
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016David Brattoli
 
WordPress Theme Design and Development Workshop - Day 2
WordPress Theme Design and Development Workshop - Day 2WordPress Theme Design and Development Workshop - Day 2
WordPress Theme Design and Development Workshop - Day 2Mizanur Rahaman Mizan
 
Starting WordPress Theme Review
Starting WordPress Theme ReviewStarting WordPress Theme Review
Starting WordPress Theme ReviewCatch Themes
 
Adopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal wayAdopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal wayMarek Sotak
 
WP Joburg Meetup 10: Genesis Framework by Trish Cornelius
WP Joburg Meetup 10: Genesis Framework by Trish CorneliusWP Joburg Meetup 10: Genesis Framework by Trish Cornelius
WP Joburg Meetup 10: Genesis Framework by Trish CorneliusWPJoburg
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress WebsitesKyle Cearley
 
Wp responsive-theme-framework
Wp responsive-theme-frameworkWp responsive-theme-framework
Wp responsive-theme-frameworkDamien Oh
 
The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017Amanda Giles
 
The Way to Theme Enlightenment
The Way to Theme EnlightenmentThe Way to Theme Enlightenment
The Way to Theme EnlightenmentAmanda Giles
 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksNathan Smith
 
SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant
SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant   SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant
SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant Sencha
 
Introduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptxIntroduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptxlekhacce
 
Php on the Web and Desktop
Php on the Web and DesktopPhp on the Web and Desktop
Php on the Web and DesktopElizabeth Smith
 
Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012Rene Bakx
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPFabien Potencier
 
Drupal Themes
Drupal ThemesDrupal Themes
Drupal Themesakosh
 
WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14slobodanmanic
 

Similaire à @wcmtl (20)

IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme Customization
 
Vinay Paudel: Optimizing and Speeding up a WordPress site
Vinay Paudel: Optimizing and Speeding up a WordPress siteVinay Paudel: Optimizing and Speeding up a WordPress site
Vinay Paudel: Optimizing and Speeding up a WordPress site
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimization
 
Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016Responsive themeworkshop wcneo2016
Responsive themeworkshop wcneo2016
 
WordPress Theme Design and Development Workshop - Day 2
WordPress Theme Design and Development Workshop - Day 2WordPress Theme Design and Development Workshop - Day 2
WordPress Theme Design and Development Workshop - Day 2
 
Starting WordPress Theme Review
Starting WordPress Theme ReviewStarting WordPress Theme Review
Starting WordPress Theme Review
 
Adopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal wayAdopt or hack - how to hack a theme in a Drupal way
Adopt or hack - how to hack a theme in a Drupal way
 
WP Joburg Meetup 10: Genesis Framework by Trish Cornelius
WP Joburg Meetup 10: Genesis Framework by Trish CorneliusWP Joburg Meetup 10: Genesis Framework by Trish Cornelius
WP Joburg Meetup 10: Genesis Framework by Trish Cornelius
 
Building Potent WordPress Websites
Building Potent WordPress WebsitesBuilding Potent WordPress Websites
Building Potent WordPress Websites
 
Wp responsive-theme-framework
Wp responsive-theme-frameworkWp responsive-theme-framework
Wp responsive-theme-framework
 
The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017
 
The Way to Theme Enlightenment
The Way to Theme EnlightenmentThe Way to Theme Enlightenment
The Way to Theme Enlightenment
 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + Fireworks
 
SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant
SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant   SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant
SenchaCon 2016: Theming the Modern Toolkit - Phil Guerrant
 
Introduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptxIntroduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptx
 
Php on the Web and Desktop
Php on the Web and DesktopPhp on the Web and Desktop
Php on the Web and Desktop
 
Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
 
Drupal Themes
Drupal ThemesDrupal Themes
Drupal Themes
 
WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

@wcmtl

  • 1. WordCamp Montreal 2011 Custom Themes from Scratch using a Theme Framework @ptahdunbar - #wcmtl
  • 2. Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 3. Ptah Dunbar • WordPress Core Contributor – Over 30+ commit props – Worked heavily on the nav menus in 3.0 – First patch was just over 9 months ago • WordPress Consulting in Miami Beach – Creative WordPress Solutions – Office + Two partners + an intern • I love to Travel – Aspiring World Traveler – First time in Canada! – Previously visited Atlanta, Luxembourg, Thailand, San • Languages – Currently learning spanish as well as improving french & german fluency. Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 4. Creating a modern WordPress theme is detail work. For a full reference, visit: ➡ http://codex.wordpress.org/Theme_Development ➡ http://codex.wordpress.org/Theme_Review Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 5. Why Theme Frameworks? • Empowering users • To make theme development more fun • Because it’s what the cools kids do. Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 6. What makes a Theme Framework? • Functions.php Loaded on every page before the page is displayed • WordPress Plugin API Allows developers to “hook” into the WordPress code and execute functionality without editing the WordPress core files. • Child Theme Template Inheritance Child themes template files override template files from the parent theme. Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 7. Two Types of Theme Frameworks ‣ User-based Theme Frameworks – Provides you with various types of options to control aspects of your theme without editing template files ‣ Designer/Developer-based Theme Frameworks – Code-oriented, tradition template system, starter-based Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 8. Theme Framework Continuum User-Based DD-based Theme Theme Frameworks Frameworks Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 9. Theme Framework Continuum Sandbox User-Based DD-based Theme Theme Frameworks Frameworks Thematic Hybrid Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 10. Theme Framework Continuum WP Framework Sandbox User-Based DD-based Theme Theme Frameworks Frameworks Thematic Hybrid Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 11. Thesis by DIYThemes Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 12. Headway by Headway Themes Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 13. Genesis by StudioPress Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 14. Sandbox theme by Scott Wallick Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 15. Starkers by Elliot Jay Stocks Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 16. Whiteboard by Bold Perspecive Labs Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 17. Top 10 WP Framework Features Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 18. WP Framework has Organization Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 19. Organization ‣ THEME_CSS ‣ THEME_JS ‣ THEME_IMG ‣ CHILD_THEME_CSS ‣ CHILD_THEME_JS ‣ CHILD_THEME_IMG ‣ Add your own: ‣ wpf_templating_constants Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 20. WP Framework does Rapid Development Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 21. Rapid Theming with WP Framework ‣ Stylesheets – reset.css – typography.css – master.css ‣ Javascripting – scripts.js with jQuery loaded ‣ Custom Functions – custom-functions.php Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 22. WP Framework has HTML5/CSS3 Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 23. WP Framework has Device Detection Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 24. WP Framework has a CSS Framework Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 25. RYO.GS Roll Your Own Grid System <link rel="stylesheet" type="text/css" media="all" href="<?php echo ryogs( '18', '28', '28', '28' ); ?>" /> 1. Number of Columns (in pixels) 2. Width of Columns (in pixels) 3. Width of Gutters (in pixels) 4. Base-line height (in pixels) Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 26. CSS Grids in WP Framework Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 27. WP Framework has Theme Options Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 28. add_theme_support( ‘theme-options’ ); Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 29. add_theme_support( ‘theme-options’ ); Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 30. wpf_register_metabox( $page_slug, $id, $title, $column, $priority ); function theme_options() { wpf_add_metabox( 'options', 'aioseo', 'All in one SEO', 1 ); wpf_add_metabox( 'options', 'scripts', 'Theme Scripts', 2 ); wpf_add_metabox( 'options', 'robots', 'General Settings', 3 ); wpf_add_metabox( 'options', 'info', 'Theme Information', 4 ); } Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 31. Theme Options API Example Usage Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 32. wpf_add_setting( $metabox_id, $option_id, $args, $data ); wpf_add_metabox( 'options', 'general', __( 'General Settings', t() ) ); wpf_add_setting( 'general', 'textbox', array( 'type' => 'textbox', 'label' => __( 'This is a sample textbox', t() ) ) ); wpf_add_setting( 'scripts', 'textarea', array( 'type' => 'textarea', 'label' => __( 'This is a sample textarea', t() ) ) ); wpf_add_setting( 'scripts', 'checkbox', array( 'type' => 'checkbox', 'label' => __( 'This is a sample checkbox', t() ) ) ); wpf_add_setting( 'scripts', 'multi-checkbox', array( 'type' => 'checkbox', 'label' => __( 'Choose your Taste:', t() ) ), array( 'Vanilla', 'Strawberry', 'Chocolate' ) ); wpf_add_setting( 'general', 'custom', array( 'type' => 'custom' ), __( 'This is custom! Here's an hr tag:', t() ) ); wpf_add_setting( 'aioseo', 'multi-radio', array( 'type' => 'radio', 'label' => __( 'Which Color?', t() ) ), array( 'Blue', 'Green', 'Yellow' ) ); wpf_add_setting( 'aioseo', 'select', array( 'type' => 'select', 'label' => 'Choose an option:' ), array( 'Option #1', 'Option #2', 'Option #3' ) ); wpf_add_setting( 'general', 'multi-select', array( 'type' => 'select', 'label' => 'Choose multiple options:', 'multiple' => true ), array( 'Option #1', 'Option #2', 'Option #3' ) ); wpf_add_setting( 'scripts', 'upload', array( 'type' => 'upload', 'label' => 'Upload a Logo:' ) ); wpf_add_setting( 'scripts', 'color', array( 'type' => 'color', 'label' => 'Choose your Color:' ) ); wpf_add_setting( 'info', 'callback', array( 'type' => 'callback' ), 'foobar' ); Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 33. Theme Options API Example Usage Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 34. WP Framework has Theme Options API Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 35. Theme Options API Store global theme metadata • add_theme_option(); • get_theme_option(); • update_theme_option(); • delete_theme_option(); Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 36. Backend wpf_add_setting( 'aioseo', 'seo-title', 'checkbox', array( 'label' => 'Append site name to page titles' ) ); Front End <?php get_theme_option(‘seo-title’); ?> Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 37. WP Framework does Future Proof Theming Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 38. Bad index.php file: <?php plugin_function_in_template(); ?> Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 39. GOOD index.php file: <?php do_action( ‘before_content’ ); ?> plugin file: add_action(‘before_content’,‘plugin_function_in_template’); Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 40. Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 41. WP Framework is Pluggable Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 42. wpf_register_class( $handle, $class ); file: custom-functions.php add_action( ‘wpf_init’, ‘register_theme_classes’ ); function register_theme_classes() { wpf_register_class( ‘theme’, ‘Custom_Theme’ ); } class Custom_Theme extends WPF { function Custom_Theme() { $this->WPF( array( ‘content_width’ => 500, ‘text_domain’ => ‘custom-theme’, ) ); } } Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 43. wpf_register_class( ‘theme’, ‘WPF’ ); file: class-wpf-template-tags.php class WPF extends WPF_Template_Tags { ... function site_title() { $args = $this->parse_attrs( $args ); $tag = ( is_home() || is_front_page() ) ? 'h1' : 'div'; printf( '<%s><span><a href="%s" title="%s" rel="home">%3$s</a></span></ %1$s>', $tag, site_url('/'), esc_attr( get_bloginfo('name') ) ); } } Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 44. wpf_register_class( ‘theme’, ‘Custom_Theme’ ); file: custom-functions.php add_action( ‘wpf_init’, ‘register_theme_classes’ ); function register_theme_classes() { wpf_register_class( ‘theme’, ‘Custom_Theme’ ); } class Custom_Theme extends WPF { function Custom_Theme() { $this->WPF( array( ‘content_width’ => 500, ‘text_domain’ => ‘custom-theme’, ) ); } function site_title() { echo ‘<h1>’. get_bloginfo('name') .’<h1>’; } } Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 45. wpf_register_contextual_class( $handle, $class ); file: custom-functions.php add_action( ‘wpf_init’, ‘register_theme_classes’ ); function register_theme_classes() { wpf_register_contextual_class( ‘assets’, ‘Theme_Assets’ ); } class Theme_Assets { function Theme_Assets() { // runs on every page } function front_page() { // runs only on the front page } } Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 46. wpf_register_contextual_class( $handle, $class ); wpf_load_contextual_classes(); wpf_template_hierarchy(); is_front_page() is_home() is_singular() is_archive() is_tax() is_category() is_tag() is_author() is_date() is_year() is_month() get_query_var( 'w' ) is_day() is_search() is_404() Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 47. WP Framework supports BuddyPress Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 48. Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 49. Demo Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl
  • 50. That’s all folks. Questions? Custom Themes from Scratch using a Theme Framework — @ptahdunbar #wcmtl

Notes de l'éditeur

  1. \n
  2. How to pronounce my name :)\n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  9. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  10. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  11. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  12. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  13. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  14. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  15. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  16. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  17. required files, then talk about all the other optional templates\n
  18. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  19. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  20. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  21. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  22. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  23. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  24. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  25. \n
  26. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  27. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  28. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  29. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  30. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  31. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  32. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  33. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  34. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  35. \n
  36. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  37. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  38. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  39. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  40. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  41. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  42. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  43. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  44. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  45. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  46. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  47. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  48. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  49. The state of the Theme\n&amp;#x2026;\n&amp;#x2026;\n&amp;#x2026;\n
  50. \n