SlideShare a Scribd company logo
1 of 39
Download to read offline
10 more things
Dieci tips and tricks che vi aiuteranno a sviluppare temi e plugins sempre più funzionali e
basati sul nostro CMS preferito: Wordpress




 Giovambattista Fazioli
 CTO & evangelist developer, co-founder - Saidmade Srl
wordpress
il successo di wordpress
•   LAMP (Linux, Apache, MySQL, PHP)
•   temi semplici e personalizzabili
•   vasta libreria di plugins semplici da
    realizzare
•   modello di sviluppo lineare PHP
•   CMS
temi & plugins
5 cose sui temi
1. cos’è un tema?
è un insieme di file posizionati all’interno di una cartella, a sua
volta posizionata nel percorso

                           /wp-content/themes




wordpress si aspetta di trovare “almeno” un determinato tipo di
file all’interno della cartella del tema, come:

               /wp-content/themes/
                   -> miotema/
                       --> styles.css
                       --> index.php
1. cos’è un tema?
  “il tema, nella realizzazione di un sito web con tecnologia
wordpress, rappresenta il cuore di tutto il sistema, molto più di
                   una valanga di plugins”



    •   cosa visualizzare
    •   come visualizzarlo
2. come realizzare un tema
“la realizzazione di un tema da parte di un singolo, nella sua
 semplicità, richiede un concentrato di varie competenze”

 •   gusto gra co
 •   capacità utilizzare strumenti come Adobe
     Photoshop pensando al codice nale
 •   HTLM e CSS
 •   PHP
 •   struttura e le funzioni di Wordpress
2. come realizzare un tema

1. content design
2. prototipo gra co
3. scrittura codice (PHP/HTML) per visualizzare
   i contenuti
4. taglio della gra ca e scrittura CSS
ti ps

        2. come realizzare un tema
                content design
ti ps

        2. come realizzare un tema
               prototipo grafico
ti ps

        2. come realizzare un tema
            scrittura codice HTML/PHP
ti ps

        2. come realizzare un tema
             taglio della grafica + CSS
3. cosa visualizzare
Wordpress permette sostanzialmente di collezionare contenuti
testuali (POST, PAGE, …) emultimediali (immagini, video,
documenti PDF, …).
Questi contenuti (descritti nel Content Design) possono essere
estratti in vari modi: tramite le funzioni – il tema – standard di
Wordpress, tramite l’uso di Plugin, scrivendo proprie funzioni.
Ogni file nel tema di Wordpress svolge una funzione particolare e
viene automaticamente richiamato da Wordpress in determinate
circostanze. I file più importanti di un tema (che può essere
composto anche da numerosi file) sono:
3. cosa visualizzare
 /wp-content/themes/
     -> miotema/
        --> archive.php
        --> comments.php
        --> footer.php
        --> functions.php
        --> header.php
        --> index.php
        --> page.php
        --> sidebar.php
        --> single.php
        --> style.css
ti ps

          3. cosa visualizzare
In linea di massima potremmo affermare che tutti i file elencati,
determinano il cosa verrà visualizzato, mentre style.css il come.
index.php, ad esempio, è il file principale, quello che corrisponde
alla Home Page.
header.php e footer.php contengono il codice HTML e PHP
utilizzato rispettivamente nell’header e nel footer.
Questa tecnica permette alle altre pagine di occuparsi
esclusivamente del contenuto che cambia, normalmente la parte
centrale.
ti ps

          3. cosa visualizzare
A livello logico tutte le pagine di un tema possono essere
ricondotte a questo schema:


               <?php get_header(); ?>

                <div id="content">
                 ...
                </div>

               <?php get_footer(); ?>
ti ps

           3. cosa visualizzare
Wordpress permette varianti e semplificazioni relative al naming
dei file del tema.
Ad esempio il file archive.php è quello che si occupa della
visualizzazione degli archivi, cioè la lista dei contenuti (post) per
categoria, tag, data, etc…
Capita spesso, sopratutto in siti web che non sono
necessariamente dei blog, di dover trattare la
visualizzazione di una categoria diversamente da un’altra.
ti ps

          3. cosa visualizzare
In prima analisi verrebbe immediatamente spontane inserire una
condizione all’interno del file archive.php del tipo:

              if( is_category('news') ) {
                // Visualizzazione per le News
              } else {
                // Altre visualizzazioni
              }




Nonostante sia corretto, Wordpress fornisce una più semplice ed
elegante soluzione: basta creare un file composto da category- lo
slug (abbreviazione) della nostra categoria, tipo: category-
news.php.
ti ps

          3. cosa visualizzare
Questa caratteristica può essere utilizzata anche per le pagine e
le sidebar, ma non per i post. Per le sidebar si nomina un file con
una notazione simile a quella utilizzata per le categorie, tipo
sidebar-footer.php, ma si usa una funzione per discriminare le
varie sidebar:


        // Carica la sidebar standard: il file sidebar.php
        get_sidebar();

        // Carica la side del file sidebar-footer.php
        get_sidebar( 'footer' );
ti ps

          3. cosa visualizzare
Uno dei file più potenti e utili, presente nei temi, è functions.php.
Questo contiene di solito tutte le funzioni PHP che possono
essere richiamate all’interno di uno qualsiasi dei file del tema. In
questo file, poi, possono essere eseguite funzioni tali da
aggiungere o modificare funzioni presenti nel backend!
Tutte le funzioni inserite in questo file saranno disponibili
esattamente come un qualsiasi altra funzione Wordpress. Un
qualsiasi file del tema, come single.php ad esempio, potrà
accedere a queste funzionalità.
ti ps

         4. snippet

        <body <?php body_class(); ?>>
ti ps

                          4. snippet
        /**
         * Restituisce il contenuto di una pagina, sia essa pubblica
         * che privata
         */
        function pageBySlug($slug) {
          $objectPost = get_page_by_path($slug);
          return apply_filters("the_content", $objectPost->post_content);
        }
5. amministrazione
Altra importantissima funzionalità è quella di presentare in modo
più “usabile” i campi personalizzati all’utente che opera
l’inserimento di un post.
Questa è un’altro punto a favore di Wordpress, cioè la possibilità
di alterare la maschera di inserimento di un post/pagina,
rendendo il backend estremamente più semplice da utilizzare per
il cliente.
Normalmente nel backend i campi personalizzati si presentano
come:
5. amministrazione
Normalmente nel backend i campi personalizzati si presentano
come:
ti ps

         5. amministrazione
Sfruttando la funzione add_meta_box(), ben documentata sulla
documentazione sul sito Wordpress
5 cose sui plugin
1. quando scrivere un plugin
ti ps

         2. le funzioni più importanti

Le funzioni più potenti presenti in Wordpress, che permettono
spesso di risolvere problematiche apparentemente complesse
sono le “poco documentate” add_filter() e add_action().

        function logoCustom() {
          echo '<style type="text/css">
            #header-logo {
             background-image: url(' . get_bloginfo('template_directory') . '/
        images/logo.png) !important;
             }
            </style>';
        }
        add_action('admin_head', 'logoCustom');
ti ps

        2. le funzioni più importanti

Con le ultime versioni di Wordpress, a livello di sistema, azioni e
filtri sono la stessa cosa. Tuttavia concettualmente vengono (a
ragione) distinti. Una action è appunto un’azione, tipo:


           // Runs when a post or page is about to be deleted.
           // Action function arguments: post or page ID.
           function didDeletePost( $pID ) {
             // Un post è stato eliminato, $pID indica l'ID
           }
           add_action('delete_post', 'didDeletePost');
ti ps

        2. le funzioni più importanti
I filtri, a differenza, vengono usati ad esempio per alterare l’output
o il comportamento di alcune funzioni:

          function modernContactInfo($contactmethods) {
              unset($contactmethods['aim']);
              unset($contactmethods['yim']);
              unset($contactmethods['jabber']);
              $contactmethods['facebook'] = 'Facebook';
              $contactmethods['twitter'] = 'Twitter';
              $contactmethods['linkedin'] = 'LinkedIn';

              return $contactmethods;
          }
          add_filter('user_contactmethods', 'modernContactInfo');
ti ps

         2. le funzioni più importanti
Per capire come funzionano i filtri, ecco un’estratto del codice
sorgente della funzione che usa Wordpress


        function _wp_get_user_contactmethods() {
           $user_contactmethods = array(
             'aim' => __('AIM'),
             'yim' => __('Yahoo IM'),
             'jabber' => __('Jabber / Google Talk')
           );
           return apply_filters('user_contactmethods', $user_contactmethods);
        }
ti ps

              3. come scriverlo...

Una disamina sulla struttura di un Plugin è disponibile su:
          Sulla struttura ad oggetti di un Plugin WordPress,
dove viene illustrato un possibile scheletro per confezionare
adeguatamente un plugin.
ti ps

        4. tools
ti ps

        4. tools
vi ew
p re
            5. anteprima




            MVC
vi ew
p re
                    5. anteprima
            // Includo il framework Saidmade
            include ("/libraries/smwordpress-plugins.php");

            // Estendo la classe SMWordpressPlugin
            class MioPlugin extends SMWordpressPlugin {
              // ...
            }




            #import <UIKit/UIKit.h>

            @interface myViewController : UIViewController
            {
               
            }
grazie
10 more things
Dieci tips and tricks che vi aiuteranno a sviluppare temi e plugins sempre più funzionali e
basati sul nostro CMS preferito: Wordpress




 Giovambattista Fazioli
 CTO & evangelist developer, co-founder - Saidmade Srl

More Related Content

What's hot

Corso Pratico di WordPress
Corso Pratico di WordPressCorso Pratico di WordPress
Corso Pratico di WordPressNicola Strumia
 
Creare un sito web con Wordpress
Creare un sito web con WordpressCreare un sito web con Wordpress
Creare un sito web con WordpressAndrea Giavara
 
eZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaeZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaFrancesco Trucchia
 
Wordpress per principianti: guida in 5 step e in 5 aree
Wordpress per principianti: guida in 5 step e in 5 areeWordpress per principianti: guida in 5 step e in 5 aree
Wordpress per principianti: guida in 5 step e in 5 areeLeonardo Serboni
 
I 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressI 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressMarco De Sangro
 
Usiamo bene WordPress
Usiamo bene WordPressUsiamo bene WordPress
Usiamo bene WordPressPaolo Valenti
 
Lezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e GestioneLezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e Gestionealessandro gasparotto
 
Drupal 7 : theming avanzato
Drupal 7 : theming avanzatoDrupal 7 : theming avanzato
Drupal 7 : theming avanzatoTwinbit
 
Bene, usiamo WordPress.
Bene, usiamo WordPress.Bene, usiamo WordPress.
Bene, usiamo WordPress.Paolo Valenti
 
Sviluppare Plugin per WordPress
Sviluppare Plugin per WordPress Sviluppare Plugin per WordPress
Sviluppare Plugin per WordPress Thomas Vitale
 
Come analizzare il log del web server
Come analizzare il log del web serverCome analizzare il log del web server
Come analizzare il log del web serverGiovanni Sacheli
 
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANODrupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANODrupalDay
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webMassimo Bonanni
 
Realizzare un sito con Wordpress come installazione pulità
Realizzare un sito con Wordpress come installazione pulitàRealizzare un sito con Wordpress come installazione pulità
Realizzare un sito con Wordpress come installazione pulitàMarco Consiglio
 
Creare un sito con WordPress
Creare un sito con WordPressCreare un sito con WordPress
Creare un sito con WordPressEugenio Molinario
 
DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)Alessandro Giorgetti
 
Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Marco De Sangro
 
WordPress 4.6 Corso Bacic
WordPress 4.6 Corso BacicWordPress 4.6 Corso Bacic
WordPress 4.6 Corso BacicRenato Gelforte
 

What's hot (20)

Corso Pratico di WordPress
Corso Pratico di WordPressCorso Pratico di WordPress
Corso Pratico di WordPress
 
Creare un sito web con Wordpress
Creare un sito web con WordpressCreare un sito web con Wordpress
Creare un sito web con Wordpress
 
eZ publish - Introduzione al sistema
eZ publish - Introduzione al sistemaeZ publish - Introduzione al sistema
eZ publish - Introduzione al sistema
 
Wordpress per principianti: guida in 5 step e in 5 aree
Wordpress per principianti: guida in 5 step e in 5 areeWordpress per principianti: guida in 5 step e in 5 aree
Wordpress per principianti: guida in 5 step e in 5 aree
 
I 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressI 1000 utilizzi di WordPress
I 1000 utilizzi di WordPress
 
Usiamo bene WordPress
Usiamo bene WordPressUsiamo bene WordPress
Usiamo bene WordPress
 
Lezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e GestioneLezione WordPress Università degli Studi di Milano: Installazione e Gestione
Lezione WordPress Università degli Studi di Milano: Installazione e Gestione
 
Drupal 7 : theming avanzato
Drupal 7 : theming avanzatoDrupal 7 : theming avanzato
Drupal 7 : theming avanzato
 
Bene, usiamo WordPress.
Bene, usiamo WordPress.Bene, usiamo WordPress.
Bene, usiamo WordPress.
 
Sviluppare Plugin per WordPress
Sviluppare Plugin per WordPress Sviluppare Plugin per WordPress
Sviluppare Plugin per WordPress
 
Corso base wordpress
Corso base wordpressCorso base wordpress
Corso base wordpress
 
Come analizzare il log del web server
Come analizzare il log del web serverCome analizzare il log del web server
Come analizzare il log del web server
 
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANODrupal Day 2012 - DRUPAL 8:  I CAMBIAMENTI CHE CI ASPETTANO
Drupal Day 2012 - DRUPAL 8: I CAMBIAMENTI CHE CI ASPETTANO
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
 
Realizzare un sito con Wordpress come installazione pulità
Realizzare un sito con Wordpress come installazione pulitàRealizzare un sito con Wordpress come installazione pulità
Realizzare un sito con Wordpress come installazione pulità
 
Creare un sito con WordPress
Creare un sito con WordPressCreare un sito con WordPress
Creare un sito con WordPress
 
DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)DNM19 Sessione1 Orchard Primo Impatto (ita)
DNM19 Sessione1 Orchard Primo Impatto (ita)
 
I Love WordPress
I Love WordPressI Love WordPress
I Love WordPress
 
Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.
 
WordPress 4.6 Corso Bacic
WordPress 4.6 Corso BacicWordPress 4.6 Corso Bacic
WordPress 4.6 Corso Bacic
 

Viewers also liked

Sandro Zaccarini, la sicurezza e l'arte della degustazione
Sandro Zaccarini, la sicurezza e l'arte della degustazioneSandro Zaccarini, la sicurezza e l'arte della degustazione
Sandro Zaccarini, la sicurezza e l'arte della degustazioneKnowCamp
 
Luca Mascaro, la città dell'informazione
Luca Mascaro, la città dell'informazioneLuca Mascaro, la città dell'informazione
Luca Mascaro, la città dell'informazioneKnowCamp
 
Giulia Lippolis, tutta un'altra storia
Giulia Lippolis, tutta un'altra storiaGiulia Lippolis, tutta un'altra storia
Giulia Lippolis, tutta un'altra storiaKnowCamp
 
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
 
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
 
Francesco Magnovacavallo, Imparare il web dai commenti
Francesco Magnovacavallo, Imparare il web dai commentiFrancesco Magnovacavallo, Imparare il web dai commenti
Francesco Magnovacavallo, Imparare il web dai commentiKnowCamp
 
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
 

Viewers also liked (7)

Sandro Zaccarini, la sicurezza e l'arte della degustazione
Sandro Zaccarini, la sicurezza e l'arte della degustazioneSandro Zaccarini, la sicurezza e l'arte della degustazione
Sandro Zaccarini, la sicurezza e l'arte della degustazione
 
Luca Mascaro, la città dell'informazione
Luca Mascaro, la città dell'informazioneLuca Mascaro, la città dell'informazione
Luca Mascaro, la città dell'informazione
 
Giulia Lippolis, tutta un'altra storia
Giulia Lippolis, tutta un'altra storiaGiulia Lippolis, tutta un'altra storia
Giulia Lippolis, tutta un'altra storia
 
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”
 
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...
 
Francesco Magnovacavallo, Imparare il web dai commenti
Francesco Magnovacavallo, Imparare il web dai commentiFrancesco Magnovacavallo, Imparare il web dai commenti
Francesco Magnovacavallo, Imparare il web dai commenti
 
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...
 

Similar to Giovambattista Fazioli, 10 more things

Wordpress Template hierarchy
Wordpress Template hierarchyWordpress Template hierarchy
Wordpress Template hierarchyGloria Liuni
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriGrUSP
 
La Gerarchia dei Temi WordPress
La Gerarchia dei Temi WordPressLa Gerarchia dei Temi WordPress
La Gerarchia dei Temi WordPressMarco De Sangro
 
I Temi in WordPress
I Temi in WordPress I Temi in WordPress
I Temi in WordPress Thomas Vitale
 
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Marco Chiesi
 
Creare un tema personalizzato per wordpress
Creare un tema personalizzato per wordpressCreare un tema personalizzato per wordpress
Creare un tema personalizzato per wordpressGGDBologna
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)Alessandro Giorgetti
 
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...Aruba S.p.A.
 
Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8Luca Lusso
 
Modificare e personalizzare WordPress attraverso 20 Snippets
Modificare e personalizzare WordPress attraverso 20 SnippetsModificare e personalizzare WordPress attraverso 20 Snippets
Modificare e personalizzare WordPress attraverso 20 SnippetsPetrozzi Emilio
 
HTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesignerHTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesignerMatteo Magni
 
Drupal - per chi vuole iniziare
Drupal - per chi vuole iniziareDrupal - per chi vuole iniziare
Drupal - per chi vuole iniziareSalvatore Paone
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 

Similar to Giovambattista Fazioli, 10 more things (20)

Wordpress Template hierarchy
Wordpress Template hierarchyWordpress Template hierarchy
Wordpress Template hierarchy
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
La Gerarchia dei Temi WordPress
La Gerarchia dei Temi WordPressLa Gerarchia dei Temi WordPress
La Gerarchia dei Temi WordPress
 
I Temi in WordPress
I Temi in WordPress I Temi in WordPress
I Temi in WordPress
 
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
Sviluppare un plugin WordPress da zero - WordCamp Bologna 2018
 
Creare un tema personalizzato per wordpress
Creare un tema personalizzato per wordpressCreare un tema personalizzato per wordpress
Creare un tema personalizzato per wordpress
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Dojo nuovo look alle vostre applicazioni web Domino
Dojo nuovo look alle vostre applicazioni web DominoDojo nuovo look alle vostre applicazioni web Domino
Dojo nuovo look alle vostre applicazioni web Domino
 
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
Con Aruba, a lezione di cloud #lezione 13 - parte 1: 'Cloud Object Storage: c...
 
Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8Come portare il profiler di symfony2 in drupal8
Come portare il profiler di symfony2 in drupal8
 
Modificare e personalizzare WordPress attraverso 20 Snippets
Modificare e personalizzare WordPress attraverso 20 SnippetsModificare e personalizzare WordPress attraverso 20 Snippets
Modificare e personalizzare WordPress attraverso 20 Snippets
 
HTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesignerHTML5 e Css3 - 1 | WebMaster & WebDesigner
HTML5 e Css3 - 1 | WebMaster & WebDesigner
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Drupal - per chi vuole iniziare
Drupal - per chi vuole iniziareDrupal - per chi vuole iniziare
Drupal - per chi vuole iniziare
 
Programmazione Internet
Programmazione InternetProgrammazione Internet
Programmazione Internet
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 

More from KnowCamp

Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...
Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...
Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...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
 
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
 
Matteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainmentMatteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainmentKnowCamp
 
Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...
Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...
Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...KnowCamp
 
Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...
Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...
Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...KnowCamp
 
Giorgio Soffiato - 5 cose che vostro nipote non vi dirà
Giorgio Soffiato - 5 cose che vostro nipote non vi diràGiorgio Soffiato - 5 cose che vostro nipote non vi dirà
Giorgio Soffiato - 5 cose che vostro nipote non vi diràKnowCamp
 
Cristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web ListeningCristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web ListeningKnowCamp
 
Elena Codeluppi- La prospettiva relazionale della creatività.
Elena Codeluppi- La prospettiva relazionale della creatività.Elena Codeluppi- La prospettiva relazionale della creatività.
Elena Codeluppi- La prospettiva relazionale della creatività.KnowCamp
 
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
 

More from KnowCamp (20)

Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...
Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...
Simone Tornabene - Ciò che non sai conta più di ciò che sai - Colui che sa, s...
 
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
 
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
 
Matteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainmentMatteo Esposito - Digital brand entertainment
Matteo Esposito - Digital brand entertainment
 
Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...
Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...
Alessio Bragadini - Combattere l’information overload: alcuni trucchi GTD per...
 
Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...
Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...
Alessandra Cosso- sL'impresa si racconta: i come e i perché dello storytellin...
 
Giorgio Soffiato - 5 cose che vostro nipote non vi dirà
Giorgio Soffiato - 5 cose che vostro nipote non vi diràGiorgio Soffiato - 5 cose che vostro nipote non vi dirà
Giorgio Soffiato - 5 cose che vostro nipote non vi dirà
 
Cristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web ListeningCristiano Toni- Introduzione al Web Listening
Cristiano Toni- Introduzione al Web Listening
 
Elena Codeluppi- La prospettiva relazionale della creatività.
Elena Codeluppi- La prospettiva relazionale della creatività.Elena Codeluppi- La prospettiva relazionale della creatività.
Elena Codeluppi- La prospettiva relazionale della creatività.
 
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

  • 1. 10 more things Dieci tips and tricks che vi aiuteranno a sviluppare temi e plugins sempre più funzionali e basati sul nostro CMS preferito: Wordpress Giovambattista Fazioli CTO & evangelist developer, co-founder - Saidmade Srl
  • 3. il successo di wordpress • LAMP (Linux, Apache, MySQL, PHP) • temi semplici e personalizzabili • vasta libreria di plugins semplici da realizzare • modello di sviluppo lineare PHP • CMS
  • 5. 5 cose sui temi
  • 6. 1. cos’è un tema? è un insieme di file posizionati all’interno di una cartella, a sua volta posizionata nel percorso /wp-content/themes wordpress si aspetta di trovare “almeno” un determinato tipo di file all’interno della cartella del tema, come: /wp-content/themes/ -> miotema/ --> styles.css --> index.php
  • 7. 1. cos’è un tema? “il tema, nella realizzazione di un sito web con tecnologia wordpress, rappresenta il cuore di tutto il sistema, molto più di una valanga di plugins” • cosa visualizzare • come visualizzarlo
  • 8. 2. come realizzare un tema “la realizzazione di un tema da parte di un singolo, nella sua semplicità, richiede un concentrato di varie competenze” • gusto gra co • capacità utilizzare strumenti come Adobe Photoshop pensando al codice nale • HTLM e CSS • PHP • struttura e le funzioni di Wordpress
  • 9. 2. come realizzare un tema 1. content design 2. prototipo gra co 3. scrittura codice (PHP/HTML) per visualizzare i contenuti 4. taglio della gra ca e scrittura CSS
  • 10. ti ps 2. come realizzare un tema content design
  • 11. ti ps 2. come realizzare un tema prototipo grafico
  • 12. ti ps 2. come realizzare un tema scrittura codice HTML/PHP
  • 13. ti ps 2. come realizzare un tema taglio della grafica + CSS
  • 14. 3. cosa visualizzare Wordpress permette sostanzialmente di collezionare contenuti testuali (POST, PAGE, …) emultimediali (immagini, video, documenti PDF, …). Questi contenuti (descritti nel Content Design) possono essere estratti in vari modi: tramite le funzioni – il tema – standard di Wordpress, tramite l’uso di Plugin, scrivendo proprie funzioni. Ogni file nel tema di Wordpress svolge una funzione particolare e viene automaticamente richiamato da Wordpress in determinate circostanze. I file più importanti di un tema (che può essere composto anche da numerosi file) sono:
  • 15. 3. cosa visualizzare /wp-content/themes/ -> miotema/ --> archive.php --> comments.php --> footer.php --> functions.php --> header.php --> index.php --> page.php --> sidebar.php --> single.php --> style.css
  • 16. ti ps 3. cosa visualizzare In linea di massima potremmo affermare che tutti i file elencati, determinano il cosa verrà visualizzato, mentre style.css il come. index.php, ad esempio, è il file principale, quello che corrisponde alla Home Page. header.php e footer.php contengono il codice HTML e PHP utilizzato rispettivamente nell’header e nel footer. Questa tecnica permette alle altre pagine di occuparsi esclusivamente del contenuto che cambia, normalmente la parte centrale.
  • 17. ti ps 3. cosa visualizzare A livello logico tutte le pagine di un tema possono essere ricondotte a questo schema: <?php get_header(); ?> <div id="content"> ... </div> <?php get_footer(); ?>
  • 18. ti ps 3. cosa visualizzare Wordpress permette varianti e semplificazioni relative al naming dei file del tema. Ad esempio il file archive.php è quello che si occupa della visualizzazione degli archivi, cioè la lista dei contenuti (post) per categoria, tag, data, etc… Capita spesso, sopratutto in siti web che non sono necessariamente dei blog, di dover trattare la visualizzazione di una categoria diversamente da un’altra.
  • 19. ti ps 3. cosa visualizzare In prima analisi verrebbe immediatamente spontane inserire una condizione all’interno del file archive.php del tipo: if( is_category('news') ) {   // Visualizzazione per le News } else {   // Altre visualizzazioni } Nonostante sia corretto, Wordpress fornisce una più semplice ed elegante soluzione: basta creare un file composto da category- lo slug (abbreviazione) della nostra categoria, tipo: category- news.php.
  • 20. ti ps 3. cosa visualizzare Questa caratteristica può essere utilizzata anche per le pagine e le sidebar, ma non per i post. Per le sidebar si nomina un file con una notazione simile a quella utilizzata per le categorie, tipo sidebar-footer.php, ma si usa una funzione per discriminare le varie sidebar: // Carica la sidebar standard: il file sidebar.php get_sidebar(); // Carica la side del file sidebar-footer.php get_sidebar( 'footer' );
  • 21. ti ps 3. cosa visualizzare Uno dei file più potenti e utili, presente nei temi, è functions.php. Questo contiene di solito tutte le funzioni PHP che possono essere richiamate all’interno di uno qualsiasi dei file del tema. In questo file, poi, possono essere eseguite funzioni tali da aggiungere o modificare funzioni presenti nel backend! Tutte le funzioni inserite in questo file saranno disponibili esattamente come un qualsiasi altra funzione Wordpress. Un qualsiasi file del tema, come single.php ad esempio, potrà accedere a queste funzionalità.
  • 22. ti ps 4. snippet <body <?php body_class(); ?>>
  • 23. ti ps 4. snippet /**  * Restituisce il contenuto di una pagina, sia essa pubblica  * che privata  */ function pageBySlug($slug) {   $objectPost = get_page_by_path($slug);   return apply_filters("the_content", $objectPost->post_content); }
  • 24. 5. amministrazione Altra importantissima funzionalità è quella di presentare in modo più “usabile” i campi personalizzati all’utente che opera l’inserimento di un post. Questa è un’altro punto a favore di Wordpress, cioè la possibilità di alterare la maschera di inserimento di un post/pagina, rendendo il backend estremamente più semplice da utilizzare per il cliente. Normalmente nel backend i campi personalizzati si presentano come:
  • 25. 5. amministrazione Normalmente nel backend i campi personalizzati si presentano come:
  • 26. ti ps 5. amministrazione Sfruttando la funzione add_meta_box(), ben documentata sulla documentazione sul sito Wordpress
  • 27. 5 cose sui plugin
  • 28. 1. quando scrivere un plugin
  • 29. ti ps 2. le funzioni più importanti Le funzioni più potenti presenti in Wordpress, che permettono spesso di risolvere problematiche apparentemente complesse sono le “poco documentate” add_filter() e add_action(). function logoCustom() {   echo '<style type="text/css">     #header-logo {      background-image: url(' . get_bloginfo('template_directory') . '/ images/logo.png) !important;      }     </style>'; } add_action('admin_head', 'logoCustom');
  • 30. ti ps 2. le funzioni più importanti Con le ultime versioni di Wordpress, a livello di sistema, azioni e filtri sono la stessa cosa. Tuttavia concettualmente vengono (a ragione) distinti. Una action è appunto un’azione, tipo: // Runs when a post or page is about to be deleted. // Action function arguments: post or page ID. function didDeletePost( $pID ) {   // Un post è stato eliminato, $pID indica l'ID } add_action('delete_post', 'didDeletePost');
  • 31. ti ps 2. le funzioni più importanti I filtri, a differenza, vengono usati ad esempio per alterare l’output o il comportamento di alcune funzioni: function modernContactInfo($contactmethods) {     unset($contactmethods['aim']);     unset($contactmethods['yim']);     unset($contactmethods['jabber']);     $contactmethods['facebook'] = 'Facebook';     $contactmethods['twitter'] = 'Twitter';     $contactmethods['linkedin'] = 'LinkedIn';     return $contactmethods; } add_filter('user_contactmethods', 'modernContactInfo');
  • 32. ti ps 2. le funzioni più importanti Per capire come funzionano i filtri, ecco un’estratto del codice sorgente della funzione che usa Wordpress function _wp_get_user_contactmethods() {    $user_contactmethods = array(      'aim' => __('AIM'),      'yim' => __('Yahoo IM'),      'jabber' => __('Jabber / Google Talk')    );    return apply_filters('user_contactmethods', $user_contactmethods); }
  • 33. ti ps 3. come scriverlo... Una disamina sulla struttura di un Plugin è disponibile su: Sulla struttura ad oggetti di un Plugin WordPress, dove viene illustrato un possibile scheletro per confezionare adeguatamente un plugin.
  • 34. ti ps 4. tools
  • 35. ti ps 4. tools
  • 36. vi ew p re 5. anteprima MVC
  • 37. vi ew p re 5. anteprima // Includo il framework Saidmade include ("/libraries/smwordpress-plugins.php"); // Estendo la classe SMWordpressPlugin class MioPlugin extends SMWordpressPlugin {   // ... } #import <UIKit/UIKit.h> @interface myViewController : UIViewController {     }
  • 39. 10 more things Dieci tips and tricks che vi aiuteranno a sviluppare temi e plugins sempre più funzionali e basati sul nostro CMS preferito: Wordpress Giovambattista Fazioli CTO & evangelist developer, co-founder - Saidmade Srl