SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
#KC2011



                       Wordpress Custom
                          Contents


                                     Enrico Corinti

lunedì 21 marzo 2011
Chi sono

                       • Enrico Corinti, 34 anni, Ascoli Piceno
                       • Web Developer/Wordpress Fan
                       • http://www.webeing.net/code
                       • @enricocorinti

lunedì 21 marzo 2011
Argomenti
                  • Make it Custom!
                   • Custom Post Types
                   • Custom Write Panels
                   • Custom Taxonomies
                  • Let it Views!
                   • Custom Templating
                   • Post Formats (Hot! 3.1)
                  • Un esempio: Slides - Autori (#kc2011)
lunedì 21 marzo 2011
Wordpress Custom is
                            better!
                       •   Completa separazione di concetti e contenuti

                       •   Write Panels differenziati e customizzati per la
                           gestione di contenuti differenti

                       •   Valore semantico al contenuto

                       •   Completa separazione dei templates e views

                       •   Custom Permalinks

                       •   Wordpress per blogger o Wordpress come CMS?


lunedì 21 marzo 2011
Make it custom!




lunedì 21 marzo 2011
Make it custom!
                            Post Types (CPT)


                       • Contenuto: aggregazione di informazioni
                         multimediali necessarie a descrivere ad un
                         dato




lunedì 21 marzo 2011
Make it custom!
                       Post Types (CPT)
       • Post                  • Books
       • Pages                 • Authors
       • Attachment (media)    • Products
       • Revisions             • Video
       • Nav Menus (WP 3.x)    • Events
       • [Links]               • ...
lunedì 21 marzo 2011
Make it custom!
                        Write Panels
       • Excerpt
                               • Book Author
       • Custom Fields
                               • Address
       • Discussion
                               • Email
       • Author
                               • Price
       • Revisions
                               • ...
       • ...
lunedì 21 marzo 2011
Make it custom!
                              Taxonomies
                       • Tassonomia: classificazione gerarchica di
                         concetti (o dati) necessaria a stabilire un
                         ordine nella catalogazione degli stessi.
                       • Utile per categorizzare molteplici
                         informazioni e classificare i contenuti in un
                         CMS, ad esempio per conferire un ordine di
                         lettura strutturato


lunedì 21 marzo 2011
Make it custom!
                        Taxonomies

                               • Book Genre
       • Categories
                               • Product Versions
       • Tags
                               • Document type
       • Link Categories
                               • ...

lunedì 21 marzo 2011
Make it custom!
                        Formats (3.1)
       • Categorizzare la             • Aside
               rappresentazioni dei
               post                   • Gallery
       • Customizzare i               • Link
                                                • Audio
               templates              • Image
                                                • Chat
       • Miscuglio di concetti        • Quote
               e confusione nella
               creazione dei          • Status
               contenuti              • Video
lunedì 21 marzo 2011
Andiamo nel pratico




                         http://wordcamp.essereweb.net
                                   User: guest
                                  Passwd: guest

lunedì 21 marzo 2011
Register Post Type

  add_action('init', 'create_wc11_slides_type');
  function create_wc11_slides_type() {
  	 register_post_type( 'wc11_slides',
  	 	 	 	 'public' => true,
      	 	 'has_archive' => true,
  	 );
  }




lunedì 21 marzo 2011
Register Post Type -
                           Altri parametri
                       • Labels
                       • Supports (Write Panels)
                       • Rewrite
                       • Taxonomies
                       • ...
                       http://codex.wordpress.org/Function_Reference/
                       register_post_type
lunedì 21 marzo 2011
Add Meta Boxes
     //Preparo il mio box
     function wc11_author_info_box() {
       //... elementi HTML del box
     }




lunedì 21 marzo 2011
Add Meta Boxes
     //Aggiungiamo il box
     function create_wc11_author_info_box() {
         add_meta_box(
               'wc11_author_box_id',
               ‘Dati Autore’,
               'wc11_author_info_box',
               'wc11_authors' );
     }



lunedì 21 marzo 2011
Add Meta Boxes
    //Preparo le azioni da fare al salvataggio
    function save_postdata( $post_id ) {
      //...operazioni da fare al salvataggio
    }




lunedì 21 marzo 2011
Add Meta Boxes
//Hook Actions in Wordpress

// WP 3.0+
add_action('add_meta_boxes','wc11_author_info_box');

// backwards compatible
add_action('admin_init', 'wc11_author_info_box', 1);

/* Do something with the data entered */
add_action('save_post', 'save_postdata');


lunedì 21 marzo 2011
Register Taxonomy
  //Registro la mia nuova tassonomia
  function create_wc11_slide_taxonomies()
  {
  register_taxonomy('wc11_topic_areas','wc11_slides’,
        array(
         'query_var' => true,
         'rewrite' => array( 'slug' => 'slides' )
         ));
  }
  //hook into the init action
  add_action('init',’create_wc11_slide_taxonomies',
  0 );

lunedì 21 marzo 2011
Register Taxonomy -
                          Altri parametri
                       • Labels
                       • Hierarchical
                       • show_in_nav_menus
                       • show_tagcloud
                       • ...
                       http://codex.wordpress.org/Function_Reference/
                       register_taxonomy
lunedì 21 marzo 2011
Let it Views!




lunedì 21 marzo 2011
New Templates Hierarchy




lunedì 21 marzo 2011
New Templates Hierarchy




lunedì 21 marzo 2011
Template Functions
  <?php
   //Elenco dei CPT
   get_post_types( $args, $output, $operator );

  //Tipo di contenuto associato al post
   get_post_type($post->ID);

  //Conditional Function for archives
  is_post_type_archive( $post_types );




lunedì 21 marzo 2011
Template Functions
    <?php
    //Tagcloud
     wp_tag_cloud( array( 'taxonomy' =>
    'taxonomy_name' ) );

    //Liste e Dropdown
     $args = array( 'taxonomy' => 'taxonomy_name' ) ;
     wp_list_categories( $args ); 		 	 	
     wp_dropdown_categories( $args );
    ?>




lunedì 21 marzo 2011
Template Functions
       <?php 
        //Array - Elenco completo
        $terms = get_terms( $taxonomies, $args ); 
        foreach ( $terms as $term ) { … } 	 	 	
                                           	

            //Elenco di link filtrato per
            IDget_the_term_list( $id , $taxonomy );

        //Array filtrato per ID
        $terms = get_the_terms( $id , $taxonomy );
        foreach ( $terms as $term ) { … }
       ?>

lunedì 21 marzo 2011
Post Formats
                • Meta-informazioni aggiuntive associate
                  al post
                • Un nuovo modo per semplificare e
                  diversificare la presentazione dei
                  contenuti
                • Un modo alternativo alle tassonomie
                  per presentare lo stesso contenuto in
                  modi differenti
lunedì 21 marzo 2011
Post Formats
    //Add theme capability to manage formats
    add_theme_support( 'post-formats', array( 'aside',
    'gallery' ) );

    //Check formats
    if ( has_post_format( 'aside' )) {
      //Faccio qualcosa per lo “stile” Aside
    }

    //Built-in “post_class()” add a “format-aside” class
    to our theme classes
    <div id="post-<?php the_ID(); ?>" <?php post_class
    (); ?>>
lunedì 21 marzo 2011
Take it easy... Plugins
         • More...
            • Fields,
            • Types,
            • Taxonomies
         • Custom UI
         • WP Post Formats

lunedì 21 marzo 2011
References
         • http://codex.wordpress.org/Post_Types#Custom_Types
         • http://codex.wordpress.org/Function_Reference/
              register_taxonomy
         • http://kovshenin.com/archives/custom-post-types-in-
              wordpress-3-0/
         • http://blog.artera.it/cms/wordpress-3-1-post-formats
         • http://www.slideshare.net/miziomon/custom-taxonomies-
              custom-post-type



lunedì 21 marzo 2011
Grazie! :)



                            @enricocorinti
                            http://www.webeing.net/code
                            enrico.corinti@webeing.net



lunedì 21 marzo 2011

Más contenido relacionado

Más de KnowCamp

Nicola Iarocci - Fuga dalla Comfort Zone
Nicola Iarocci - Fuga dalla Comfort ZoneNicola Iarocci - Fuga dalla Comfort Zone
Nicola Iarocci - Fuga dalla Comfort ZoneKnowCamp
 
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...KnowCamp
 
Domitilla Ferrari - Social Media Take Away
Domitilla Ferrari - Social Media Take AwayDomitilla Ferrari - Social Media Take Away
Domitilla Ferrari - Social Media Take AwayKnowCamp
 
Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...
Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...
Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...KnowCamp
 
Emilio Galavotti - Acantho
Emilio Galavotti - AcanthoEmilio Galavotti - Acantho
Emilio Galavotti - AcanthoKnowCamp
 
Mattia Soragni – “I 10 Comandamenti del Personal Branding”
Mattia Soragni – “I 10 Comandamenti del Personal Branding”Mattia Soragni – “I 10 Comandamenti del Personal Branding”
Mattia Soragni – “I 10 Comandamenti del Personal Branding”KnowCamp
 
Paolo Franceschini – “Facebook come veicolo di passioni”
Paolo Franceschini – “Facebook come veicolo di passioni” Paolo Franceschini – “Facebook come veicolo di passioni”
Paolo Franceschini – “Facebook come veicolo di passioni” KnowCamp
 
Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...
Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...
Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...KnowCamp
 
Luca Panzarella – “Pizza, mandolino e startup”
Luca Panzarella – “Pizza, mandolino e startup” Luca Panzarella – “Pizza, mandolino e startup”
Luca Panzarella – “Pizza, mandolino e startup” KnowCamp
 
Letizia Melchiorre - Vita da Labbers
Letizia Melchiorre - Vita da LabbersLetizia Melchiorre - Vita da Labbers
Letizia Melchiorre - Vita da LabbersKnowCamp
 
Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”
Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”
Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”KnowCamp
 
Matteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainmentMatteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainmentKnowCamp
 
Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...
Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...
Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...KnowCamp
 
Cristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web ListeningCristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web ListeningKnowCamp
 
Paolo Maffei, WordPress Ext
Paolo Maffei, WordPress ExtPaolo Maffei, WordPress Ext
Paolo Maffei, WordPress ExtKnowCamp
 
Sandro Zaccarini, Achive escape velocity
Sandro Zaccarini, Achive escape velocitySandro Zaccarini, Achive escape velocity
Sandro Zaccarini, Achive escape velocityKnowCamp
 
Salvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQuerySalvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQueryKnowCamp
 
Paolo Valenti -Wolly-, WordPress più sicuro
Paolo Valenti -Wolly-, WordPress più sicuroPaolo Valenti -Wolly-, WordPress più sicuro
Paolo Valenti -Wolly-, WordPress più sicuroKnowCamp
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsKnowCamp
 
Ggd Modena, cronaca di una rivoluzione annunciata
Ggd Modena, cronaca di una rivoluzione annunciataGgd Modena, cronaca di una rivoluzione annunciata
Ggd Modena, cronaca di una rivoluzione annunciataKnowCamp
 

Más de KnowCamp (20)

Nicola Iarocci - Fuga dalla Comfort Zone
Nicola Iarocci - Fuga dalla Comfort ZoneNicola Iarocci - Fuga dalla Comfort Zone
Nicola Iarocci - Fuga dalla Comfort Zone
 
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
Gianni Marconato - Costruire conoscenza professionale in rete attraverso la n...
 
Domitilla Ferrari - Social Media Take Away
Domitilla Ferrari - Social Media Take AwayDomitilla Ferrari - Social Media Take Away
Domitilla Ferrari - Social Media Take Away
 
Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...
Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...
Francesca Barbieri - Alcune dritte dagli animali australiani sulla vita da fr...
 
Emilio Galavotti - Acantho
Emilio Galavotti - AcanthoEmilio Galavotti - Acantho
Emilio Galavotti - Acantho
 
Mattia Soragni – “I 10 Comandamenti del Personal Branding”
Mattia Soragni – “I 10 Comandamenti del Personal Branding”Mattia Soragni – “I 10 Comandamenti del Personal Branding”
Mattia Soragni – “I 10 Comandamenti del Personal Branding”
 
Paolo Franceschini – “Facebook come veicolo di passioni”
Paolo Franceschini – “Facebook come veicolo di passioni” Paolo Franceschini – “Facebook come veicolo di passioni”
Paolo Franceschini – “Facebook come veicolo di passioni”
 
Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...
Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...
Riccardo Polesel – “Comunicare le energie rinnovabili: meno filosofia e più i...
 
Luca Panzarella – “Pizza, mandolino e startup”
Luca Panzarella – “Pizza, mandolino e startup” Luca Panzarella – “Pizza, mandolino e startup”
Luca Panzarella – “Pizza, mandolino e startup”
 
Letizia Melchiorre - Vita da Labbers
Letizia Melchiorre - Vita da LabbersLetizia Melchiorre - Vita da Labbers
Letizia Melchiorre - Vita da Labbers
 
Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”
Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”
Nicola Bonora – “Usabilità nel commercio elettronico, settore treni”
 
Matteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainmentMatteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainment
 
Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...
Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...
Michela Simoncini - I social media al servizio della tua azienda: alcuni esem...
 
Cristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web ListeningCristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web Listening
 
Paolo Maffei, WordPress Ext
Paolo Maffei, WordPress ExtPaolo Maffei, WordPress Ext
Paolo Maffei, WordPress Ext
 
Sandro Zaccarini, Achive escape velocity
Sandro Zaccarini, Achive escape velocitySandro Zaccarini, Achive escape velocity
Sandro Zaccarini, Achive escape velocity
 
Salvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQuerySalvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQuery
 
Paolo Valenti -Wolly-, WordPress più sicuro
Paolo Valenti -Wolly-, WordPress più sicuroPaolo Valenti -Wolly-, WordPress più sicuro
Paolo Valenti -Wolly-, WordPress più sicuro
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
 
Ggd Modena, cronaca di una rivoluzione annunciata
Ggd Modena, cronaca di una rivoluzione annunciataGgd Modena, cronaca di una rivoluzione annunciata
Ggd Modena, cronaca di una rivoluzione annunciata
 

Último

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 

Último (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 

Enrico Corinti, WordPress Custom Contents

  • 1. #KC2011 Wordpress Custom Contents Enrico Corinti lunedì 21 marzo 2011
  • 2. Chi sono • Enrico Corinti, 34 anni, Ascoli Piceno • Web Developer/Wordpress Fan • http://www.webeing.net/code • @enricocorinti lunedì 21 marzo 2011
  • 3. Argomenti • Make it Custom! • Custom Post Types • Custom Write Panels • Custom Taxonomies • Let it Views! • Custom Templating • Post Formats (Hot! 3.1) • Un esempio: Slides - Autori (#kc2011) lunedì 21 marzo 2011
  • 4. Wordpress Custom is better! • Completa separazione di concetti e contenuti • Write Panels differenziati e customizzati per la gestione di contenuti differenti • Valore semantico al contenuto • Completa separazione dei templates e views • Custom Permalinks • Wordpress per blogger o Wordpress come CMS? lunedì 21 marzo 2011
  • 5. Make it custom! lunedì 21 marzo 2011
  • 6. Make it custom! Post Types (CPT) • Contenuto: aggregazione di informazioni multimediali necessarie a descrivere ad un dato lunedì 21 marzo 2011
  • 7. Make it custom! Post Types (CPT) • Post • Books • Pages • Authors • Attachment (media) • Products • Revisions • Video • Nav Menus (WP 3.x) • Events • [Links] • ... lunedì 21 marzo 2011
  • 8. Make it custom! Write Panels • Excerpt • Book Author • Custom Fields • Address • Discussion • Email • Author • Price • Revisions • ... • ... lunedì 21 marzo 2011
  • 9. Make it custom! Taxonomies • Tassonomia: classificazione gerarchica di concetti (o dati) necessaria a stabilire un ordine nella catalogazione degli stessi. • Utile per categorizzare molteplici informazioni e classificare i contenuti in un CMS, ad esempio per conferire un ordine di lettura strutturato lunedì 21 marzo 2011
  • 10. Make it custom! Taxonomies • Book Genre • Categories • Product Versions • Tags • Document type • Link Categories • ... lunedì 21 marzo 2011
  • 11. Make it custom! Formats (3.1) • Categorizzare la • Aside rappresentazioni dei post • Gallery • Customizzare i • Link • Audio templates • Image • Chat • Miscuglio di concetti • Quote e confusione nella creazione dei • Status contenuti • Video lunedì 21 marzo 2011
  • 12. Andiamo nel pratico http://wordcamp.essereweb.net User: guest Passwd: guest lunedì 21 marzo 2011
  • 13. Register Post Type add_action('init', 'create_wc11_slides_type'); function create_wc11_slides_type() { register_post_type( 'wc11_slides', 'public' => true, 'has_archive' => true, ); } lunedì 21 marzo 2011
  • 14. Register Post Type - Altri parametri • Labels • Supports (Write Panels) • Rewrite • Taxonomies • ... http://codex.wordpress.org/Function_Reference/ register_post_type lunedì 21 marzo 2011
  • 15. Add Meta Boxes //Preparo il mio box function wc11_author_info_box() { //... elementi HTML del box } lunedì 21 marzo 2011
  • 16. Add Meta Boxes //Aggiungiamo il box function create_wc11_author_info_box() { add_meta_box( 'wc11_author_box_id', ‘Dati Autore’, 'wc11_author_info_box', 'wc11_authors' ); } lunedì 21 marzo 2011
  • 17. Add Meta Boxes //Preparo le azioni da fare al salvataggio function save_postdata( $post_id ) { //...operazioni da fare al salvataggio } lunedì 21 marzo 2011
  • 18. Add Meta Boxes //Hook Actions in Wordpress // WP 3.0+ add_action('add_meta_boxes','wc11_author_info_box'); // backwards compatible add_action('admin_init', 'wc11_author_info_box', 1); /* Do something with the data entered */ add_action('save_post', 'save_postdata'); lunedì 21 marzo 2011
  • 19. Register Taxonomy //Registro la mia nuova tassonomia function create_wc11_slide_taxonomies() { register_taxonomy('wc11_topic_areas','wc11_slides’, array( 'query_var' => true, 'rewrite' => array( 'slug' => 'slides' ) )); } //hook into the init action add_action('init',’create_wc11_slide_taxonomies', 0 ); lunedì 21 marzo 2011
  • 20. Register Taxonomy - Altri parametri • Labels • Hierarchical • show_in_nav_menus • show_tagcloud • ... http://codex.wordpress.org/Function_Reference/ register_taxonomy lunedì 21 marzo 2011
  • 21. Let it Views! lunedì 21 marzo 2011
  • 24. Template Functions <?php //Elenco dei CPT  get_post_types( $args, $output, $operator ); //Tipo di contenuto associato al post get_post_type($post->ID); //Conditional Function for archives is_post_type_archive( $post_types ); lunedì 21 marzo 2011
  • 25. Template Functions <?php //Tagcloud wp_tag_cloud( array( 'taxonomy' => 'taxonomy_name' ) ); //Liste e Dropdown $args = array( 'taxonomy' => 'taxonomy_name' ) ; wp_list_categories( $args ); wp_dropdown_categories( $args ); ?> lunedì 21 marzo 2011
  • 26. Template Functions <?php  //Array - Elenco completo $terms = get_terms( $taxonomies, $args );  foreach ( $terms as $term ) { … } //Elenco di link filtrato per IDget_the_term_list( $id , $taxonomy ); //Array filtrato per ID $terms = get_the_terms( $id , $taxonomy ); foreach ( $terms as $term ) { … } ?> lunedì 21 marzo 2011
  • 27. Post Formats • Meta-informazioni aggiuntive associate al post • Un nuovo modo per semplificare e diversificare la presentazione dei contenuti • Un modo alternativo alle tassonomie per presentare lo stesso contenuto in modi differenti lunedì 21 marzo 2011
  • 28. Post Formats //Add theme capability to manage formats add_theme_support( 'post-formats', array( 'aside', 'gallery' ) ); //Check formats if ( has_post_format( 'aside' )) { //Faccio qualcosa per lo “stile” Aside } //Built-in “post_class()” add a “format-aside” class to our theme classes <div id="post-<?php the_ID(); ?>" <?php post_class (); ?>> lunedì 21 marzo 2011
  • 29. Take it easy... Plugins • More... • Fields, • Types, • Taxonomies • Custom UI • WP Post Formats lunedì 21 marzo 2011
  • 30. References • http://codex.wordpress.org/Post_Types#Custom_Types • http://codex.wordpress.org/Function_Reference/ register_taxonomy • http://kovshenin.com/archives/custom-post-types-in- wordpress-3-0/ • http://blog.artera.it/cms/wordpress-3-1-post-formats • http://www.slideshare.net/miziomon/custom-taxonomies- custom-post-type lunedì 21 marzo 2011
  • 31. Grazie! :) @enricocorinti http://www.webeing.net/code enrico.corinti@webeing.net lunedì 21 marzo 2011