SlideShare a Scribd company logo
1 of 21
per Startup
Costruisci il tuo MVP* in poche ore con WordPress
* Minimum Viable Product (MVP) is a strategy used for fast and quantitative market testing of a product
or product feature, popularized by Eric Ries for web applications
[wikipedia]
Quando «WordPress» e «MVP» si incontrano nella stessa frase…
Will it scale?
E il Data Model?
Ma è un CMS!
https://news.ycombinator.com/item?id=6097663
L’MVP è solo la prima di una lunga serie di iterazioni
In questa fase ci interessa solo una cosa: la velocità
L’idea: un marketplace1
http://www.localguiding.com/
L’idea: un marketplace
per guide turistiche locali
http://www.lookals.com/
http://www.showmearound.net/
2
Localtourguide.io - un marketplace per guide turistiche locali
Gli elementi
Blog
News, Content
marketing…
Pages
About, Why Join?...
Tours
Main feature
Bookings ReviewsGuide
Turisti
3
Localtourguide.io - un marketplace per guide turistiche locali
Map to WordPress
Blog
News, Content
marketing…
Pages
About, Why Join?...
Tours
Main feature
4.1
Custom post type + Custom Fields
Bookings Custom post type + Custom Fields
Reviews Tour comments
Localtourguide.io - un marketplace per guide turistiche locali
Map to WordPress
Guide Turisti
4.2
Post Author
Custom roles
Tours
Main feature
Guide
Posts 2 PostsBookingsTuristi
Posts 2 PostsBookingsTours
Main feature
Localtourguide.io - un marketplace per guide turistiche locali
Strumenti5.1
Custom post types
Custom fields
Generators
http://generatewp.com
http://themergency.com/generators
http://www.weareo3.com/wordp...
Plugins
http://wordpress.org/plugins/types/
…
Plugins
http://wordpress.o
rg/plugins/advanc
ed-custom-fields/
http://wordpress.org/plugins/types/
https://github.com/jaredatch/Custo
m-Metaboxes-and-Fields-for-
WordPress
…
Localtourguide.io - un marketplace per guide turistiche locali
Strumenti
Custom Roles
Post and User connections
Codex
http://codex.wordpress.or
g/Roles_and_Capabilities
Plugins
http://wordpress.org/plugins/user-
role-editor/
…
Plugins
http://wordpress.org/plugi
ns/posts-to-posts/
https://github.com/scribu/wp-posts-
to-posts/wiki
5.3
Codice: Custom post types + capabilities
6.1
Stiamo creando delle nuove «custom
capabilities», che però nessun ruolo possiede.
Occorre assegnarle almeno all’admin,
altrimenti nessuno avrebbe i privilegi necessari
per manipolare questo post type
Da chiamare su init,. i.e. add_action( 'init', 'register_cpt_tour' );
Codice: Custom post types + capabilities
6.2
register_cpt_caps aggiunge al ruolo
administrator (ed eventuali altri)
le custom capabilities associate
ad un custom post type
Ora quel custom post type risulta accessibile
(almeno per gli administrator)
N.B. Le operazioni sui ruoli sono da chiamare solo una volta, all’attivazione, perché sono persistenti, i.e.
add_action( 'init', 'register_cr' );
function register_cr()
{
$registered = get_option('ltg_cr_created');
if( empty($registered) ) {
register_cpt_caps('tour');
// altre operazioni sui ruoli
add_option('ltg_cr_created', true);
}
}
Codice: Custom post types + capabilities
6.3
register_cr_guide usa clone_role per creare un
nuovo ruolo guide, basato su subscriber,
e aggiunge il solo privilegio di creare e modificare
(ma non pubblicare) i propri post di tipo tour
clone_role crea un nuovo ruolo
copiando uno dei ruoli esistenti in WP_Roles
Codice: Custom post types + capabilities
6.4
Un ultima cosa: quando creiamo un nuovo tour,
vogliamo poter selezionare come autore
anche tutti gli user con ruolo guide
Codice: Post and User Connections
6.5
…nel frattempo bbiamo creato anche
un custom post type booking
per gestire le prenotazioni
Ogni booking dev’essere collegato a:
• Uno o più partecipanti (user)
• Il relativo tour
Specifichiamo queste relazioni con l’api
del plugin Posts 2 Posts
Codice: Post and User Connections
6.6
Abbiamo creato anche un
custom post type booking
per gestire le prenotazioni
Ogni booking dev’essere collegato a
• Uno o più partecipanti (user)
• Il relativo tour
Specifichiamo queste relazioni con l’api
del plugin Posts 2 Posts
Ed ecco il risultato in /wp-admin
Configurazione: Custom Fields
6.7
ACF ci permette di gestire i campi
aggiunti con un’interfaccia grafica molto
efficiente.
Ecco il risultato in /wp-admin
Cosa manca: gestione bookings
7 I custom post type booking non sono contenuti,
e devono essere nascosti dal front end.
Ma abbiamo comunque bisogno degli url per azioni
di richiesta/accettazione/rifiuto delle prenotazioni
Per manipolare i booking
definiremo degli url virtuali, non
legati a nessun post o pagina
Il ciclo di vita della prenotazione potrà essere gestito
mediante dei custom post status
Il Backoffice
8
Un backoffice pronto all’uso e conosciuto da molte persone
http://wp.smashingmagazine.com/2012/05/17/customize-wordpress-admin-easily/
• Il logo nella pagina di login
• I loghi nell’header e footer dell’area amministrazione
• Gli elementi della bacheca
• Lo schema colori
C’è spesso una componente «di facciata» in un MVP.
In questi casi meglio personalizzare graficamente il backoffice
Tutto il codice testato e funzionante?
Metti la tua stellina sul repo di github!
Lo pubblico se arrivamo almeno a 20
Promesso!
9
https://github.com/ptbello/localtourguide

More Related Content

Viewers also liked

How to Use the 2012 SCAA Smartphone App
How to Use the 2012 SCAA Smartphone AppHow to Use the 2012 SCAA Smartphone App
How to Use the 2012 SCAA Smartphone Appswillison562
 
A lovely presentation made by D.P.Nagar
A lovely presentation made by D.P.NagarA lovely presentation made by D.P.Nagar
A lovely presentation made by D.P.NagarPriya Singh
 
экологические проблемы
экологические проблемыэкологические проблемы
экологические проблемыBelovaValentina
 
James shorty candies_1937_2011
James shorty candies_1937_2011James shorty candies_1937_2011
James shorty candies_1937_2011Deena Chadwick
 
Native Spooler Limitations and Solutions
Native Spooler Limitations and SolutionsNative Spooler Limitations and Solutions
Native Spooler Limitations and SolutionsPlus Technologies
 
Using Lifestyle Data in Today's and Tomorrow's World
Using Lifestyle Data in Today's and Tomorrow's WorldUsing Lifestyle Data in Today's and Tomorrow's World
Using Lifestyle Data in Today's and Tomorrow's Worldindeuppal
 
How to Upgrade Your App Listing
How to Upgrade Your App ListingHow to Upgrade Your App Listing
How to Upgrade Your App Listingswillison562
 
Equine Emergencies Part 3
Equine  Emergencies Part 3Equine  Emergencies Part 3
Equine Emergencies Part 3Ernie Martinez
 
North Carolina-Clarence and Isaiah
North Carolina-Clarence and IsaiahNorth Carolina-Clarence and Isaiah
North Carolina-Clarence and Isaiahklei8103
 
Best kitchen knives
Best kitchen knivesBest kitchen knives
Best kitchen knivesbestkit3
 
Project presentation
Project presentationProject presentation
Project presentationdunny205
 
คณิตศาสตร์
คณิตศาสตร์คณิตศาสตร์
คณิตศาสตร์ikwanz
 
Available Output Management Support in Germany
Available Output Management Support in GermanyAvailable Output Management Support in Germany
Available Output Management Support in GermanyPlus Technologies
 
Elevation getting to the next level
Elevation getting to the next levelElevation getting to the next level
Elevation getting to the next levelRoger Hernandez
 
Ok. rude hand gestures of the world
Ok. rude hand gestures of the worldOk. rude hand gestures of the world
Ok. rude hand gestures of the worldGede Saputra
 
WordCamp Tokyo2012 Session
WordCamp Tokyo2012 SessionWordCamp Tokyo2012 Session
WordCamp Tokyo2012 Sessionregret raym
 
Im a christian, why do i need church
Im a christian, why do i need churchIm a christian, why do i need church
Im a christian, why do i need churchRoger Hernandez
 

Viewers also liked (19)

Relações Familiares
Relações FamiliaresRelações Familiares
Relações Familiares
 
How to Use the 2012 SCAA Smartphone App
How to Use the 2012 SCAA Smartphone AppHow to Use the 2012 SCAA Smartphone App
How to Use the 2012 SCAA Smartphone App
 
A lovely presentation made by D.P.Nagar
A lovely presentation made by D.P.NagarA lovely presentation made by D.P.Nagar
A lovely presentation made by D.P.Nagar
 
экологические проблемы
экологические проблемыэкологические проблемы
экологические проблемы
 
James shorty candies_1937_2011
James shorty candies_1937_2011James shorty candies_1937_2011
James shorty candies_1937_2011
 
Native Spooler Limitations and Solutions
Native Spooler Limitations and SolutionsNative Spooler Limitations and Solutions
Native Spooler Limitations and Solutions
 
Using Lifestyle Data in Today's and Tomorrow's World
Using Lifestyle Data in Today's and Tomorrow's WorldUsing Lifestyle Data in Today's and Tomorrow's World
Using Lifestyle Data in Today's and Tomorrow's World
 
How to Upgrade Your App Listing
How to Upgrade Your App ListingHow to Upgrade Your App Listing
How to Upgrade Your App Listing
 
Equine Emergencies Part 3
Equine  Emergencies Part 3Equine  Emergencies Part 3
Equine Emergencies Part 3
 
North Carolina-Clarence and Isaiah
North Carolina-Clarence and IsaiahNorth Carolina-Clarence and Isaiah
North Carolina-Clarence and Isaiah
 
Best kitchen knives
Best kitchen knivesBest kitchen knives
Best kitchen knives
 
Project presentation
Project presentationProject presentation
Project presentation
 
คณิตศาสตร์
คณิตศาสตร์คณิตศาสตร์
คณิตศาสตร์
 
Available Output Management Support in Germany
Available Output Management Support in GermanyAvailable Output Management Support in Germany
Available Output Management Support in Germany
 
Honor Choir 1s
Honor Choir 1sHonor Choir 1s
Honor Choir 1s
 
Elevation getting to the next level
Elevation getting to the next levelElevation getting to the next level
Elevation getting to the next level
 
Ok. rude hand gestures of the world
Ok. rude hand gestures of the worldOk. rude hand gestures of the world
Ok. rude hand gestures of the world
 
WordCamp Tokyo2012 Session
WordCamp Tokyo2012 SessionWordCamp Tokyo2012 Session
WordCamp Tokyo2012 Session
 
Im a christian, why do i need church
Im a christian, why do i need churchIm a christian, why do i need church
Im a christian, why do i need church
 

Similar to WordPress per Startup

I 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressI 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressMarco De Sangro
 
Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Marco De Sangro
 
Modi innovativi per costruire App
Modi innovativi per costruire AppModi innovativi per costruire App
Modi innovativi per costruire AppCommit University
 
Google Analytics per esperti
Google Analytics  per espertiGoogle Analytics  per esperti
Google Analytics per espertiDML Srl
 
Bloggando con WordPress
Bloggando con WordPressBloggando con WordPress
Bloggando con WordPressGiacomo
 
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...Xhoi Kerbizi
 
Marketing ed ufficio stampa
Marketing ed ufficio stampaMarketing ed ufficio stampa
Marketing ed ufficio stampaAlcor Sistemi
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle AppMatteo Collina
 
Smau milano 2012 arena social media matteo-collina
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collinaSMAU
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2Bkino2k
 
Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...
Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...
Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...MOCA Interactive
 
Analisi multi-dimensionale di una rivoluzione tecnologica e sociale
Analisi multi-dimensionale di una rivoluzione tecnologica e socialeAnalisi multi-dimensionale di una rivoluzione tecnologica e sociale
Analisi multi-dimensionale di una rivoluzione tecnologica e socialeErika Montoli
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
15 - Web designer vs Web developer
15 - Web designer vs Web developer15 - Web designer vs Web developer
15 - Web designer vs Web developerGiuseppe Vizzari
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsKnowCamp
 
Corso Base Wordpress 22-40 | installazione (2 di 4)
Corso Base Wordpress 22-40 | installazione (2 di 4)Corso Base Wordpress 22-40 | installazione (2 di 4)
Corso Base Wordpress 22-40 | installazione (2 di 4)armandocarcaterra
 
Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…
Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…
Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…bsdlover
 
Web designer vs Web developer
Web designer vs Web developerWeb designer vs Web developer
Web designer vs Web developerGiuseppe Vizzari
 

Similar to WordPress per Startup (20)

I 1000 utilizzi di WordPress
I 1000 utilizzi di WordPressI 1000 utilizzi di WordPress
I 1000 utilizzi di WordPress
 
Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.Come estendere WordPress all'infinito.
Come estendere WordPress all'infinito.
 
Modi innovativi per costruire App
Modi innovativi per costruire AppModi innovativi per costruire App
Modi innovativi per costruire App
 
Google Analytics per esperti
Google Analytics  per espertiGoogle Analytics  per esperti
Google Analytics per esperti
 
Bloggando con WordPress
Bloggando con WordPressBloggando con WordPress
Bloggando con WordPress
 
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
 
UI Composition
UI CompositionUI Composition
UI Composition
 
Marketing ed ufficio stampa
Marketing ed ufficio stampaMarketing ed ufficio stampa
Marketing ed ufficio stampa
 
L'universo dietro alle App
L'universo dietro alle AppL'universo dietro alle App
L'universo dietro alle App
 
Smau milano 2012 arena social media matteo-collina
Smau milano 2012   arena social media matteo-collinaSmau milano 2012   arena social media matteo-collina
Smau milano 2012 arena social media matteo-collina
 
WordPress REST API
WordPress REST APIWordPress REST API
WordPress REST API
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
 
Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...
Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...
Lead Generation per B2C e B2B: concetti (Funnel di Conversione, Customer Jour...
 
Analisi multi-dimensionale di una rivoluzione tecnologica e sociale
Analisi multi-dimensionale di una rivoluzione tecnologica e socialeAnalisi multi-dimensionale di una rivoluzione tecnologica e sociale
Analisi multi-dimensionale di una rivoluzione tecnologica e sociale
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
15 - Web designer vs Web developer
15 - Web designer vs Web developer15 - Web designer vs Web developer
15 - Web designer vs Web developer
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
 
Corso Base Wordpress 22-40 | installazione (2 di 4)
Corso Base Wordpress 22-40 | installazione (2 di 4)Corso Base Wordpress 22-40 | installazione (2 di 4)
Corso Base Wordpress 22-40 | installazione (2 di 4)
 
Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…
Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…
Soluzioni Open Source per lo sviluppo di ogni tipologia di sito web. Il ca…
 
Web designer vs Web developer
Web designer vs Web developerWeb designer vs Web developer
Web designer vs Web developer
 

WordPress per Startup

  • 1. per Startup Costruisci il tuo MVP* in poche ore con WordPress * Minimum Viable Product (MVP) is a strategy used for fast and quantitative market testing of a product or product feature, popularized by Eric Ries for web applications [wikipedia]
  • 2. Quando «WordPress» e «MVP» si incontrano nella stessa frase… Will it scale? E il Data Model? Ma è un CMS!
  • 4. L’MVP è solo la prima di una lunga serie di iterazioni In questa fase ci interessa solo una cosa: la velocità
  • 6. http://www.localguiding.com/ L’idea: un marketplace per guide turistiche locali http://www.lookals.com/ http://www.showmearound.net/ 2
  • 7. Localtourguide.io - un marketplace per guide turistiche locali Gli elementi Blog News, Content marketing… Pages About, Why Join?... Tours Main feature Bookings ReviewsGuide Turisti 3
  • 8. Localtourguide.io - un marketplace per guide turistiche locali Map to WordPress Blog News, Content marketing… Pages About, Why Join?... Tours Main feature 4.1 Custom post type + Custom Fields Bookings Custom post type + Custom Fields Reviews Tour comments
  • 9. Localtourguide.io - un marketplace per guide turistiche locali Map to WordPress Guide Turisti 4.2 Post Author Custom roles Tours Main feature Guide Posts 2 PostsBookingsTuristi Posts 2 PostsBookingsTours Main feature
  • 10. Localtourguide.io - un marketplace per guide turistiche locali Strumenti5.1 Custom post types Custom fields Generators http://generatewp.com http://themergency.com/generators http://www.weareo3.com/wordp... Plugins http://wordpress.org/plugins/types/ … Plugins http://wordpress.o rg/plugins/advanc ed-custom-fields/ http://wordpress.org/plugins/types/ https://github.com/jaredatch/Custo m-Metaboxes-and-Fields-for- WordPress …
  • 11. Localtourguide.io - un marketplace per guide turistiche locali Strumenti Custom Roles Post and User connections Codex http://codex.wordpress.or g/Roles_and_Capabilities Plugins http://wordpress.org/plugins/user- role-editor/ … Plugins http://wordpress.org/plugi ns/posts-to-posts/ https://github.com/scribu/wp-posts- to-posts/wiki 5.3
  • 12. Codice: Custom post types + capabilities 6.1 Stiamo creando delle nuove «custom capabilities», che però nessun ruolo possiede. Occorre assegnarle almeno all’admin, altrimenti nessuno avrebbe i privilegi necessari per manipolare questo post type Da chiamare su init,. i.e. add_action( 'init', 'register_cpt_tour' );
  • 13. Codice: Custom post types + capabilities 6.2 register_cpt_caps aggiunge al ruolo administrator (ed eventuali altri) le custom capabilities associate ad un custom post type Ora quel custom post type risulta accessibile (almeno per gli administrator) N.B. Le operazioni sui ruoli sono da chiamare solo una volta, all’attivazione, perché sono persistenti, i.e. add_action( 'init', 'register_cr' ); function register_cr() { $registered = get_option('ltg_cr_created'); if( empty($registered) ) { register_cpt_caps('tour'); // altre operazioni sui ruoli add_option('ltg_cr_created', true); } }
  • 14. Codice: Custom post types + capabilities 6.3 register_cr_guide usa clone_role per creare un nuovo ruolo guide, basato su subscriber, e aggiunge il solo privilegio di creare e modificare (ma non pubblicare) i propri post di tipo tour clone_role crea un nuovo ruolo copiando uno dei ruoli esistenti in WP_Roles
  • 15. Codice: Custom post types + capabilities 6.4 Un ultima cosa: quando creiamo un nuovo tour, vogliamo poter selezionare come autore anche tutti gli user con ruolo guide
  • 16. Codice: Post and User Connections 6.5 …nel frattempo bbiamo creato anche un custom post type booking per gestire le prenotazioni Ogni booking dev’essere collegato a: • Uno o più partecipanti (user) • Il relativo tour Specifichiamo queste relazioni con l’api del plugin Posts 2 Posts
  • 17. Codice: Post and User Connections 6.6 Abbiamo creato anche un custom post type booking per gestire le prenotazioni Ogni booking dev’essere collegato a • Uno o più partecipanti (user) • Il relativo tour Specifichiamo queste relazioni con l’api del plugin Posts 2 Posts Ed ecco il risultato in /wp-admin
  • 18. Configurazione: Custom Fields 6.7 ACF ci permette di gestire i campi aggiunti con un’interfaccia grafica molto efficiente. Ecco il risultato in /wp-admin
  • 19. Cosa manca: gestione bookings 7 I custom post type booking non sono contenuti, e devono essere nascosti dal front end. Ma abbiamo comunque bisogno degli url per azioni di richiesta/accettazione/rifiuto delle prenotazioni Per manipolare i booking definiremo degli url virtuali, non legati a nessun post o pagina Il ciclo di vita della prenotazione potrà essere gestito mediante dei custom post status
  • 20. Il Backoffice 8 Un backoffice pronto all’uso e conosciuto da molte persone http://wp.smashingmagazine.com/2012/05/17/customize-wordpress-admin-easily/ • Il logo nella pagina di login • I loghi nell’header e footer dell’area amministrazione • Gli elementi della bacheca • Lo schema colori C’è spesso una componente «di facciata» in un MVP. In questi casi meglio personalizzare graficamente il backoffice
  • 21. Tutto il codice testato e funzionante? Metti la tua stellina sul repo di github! Lo pubblico se arrivamo almeno a 20 Promesso! 9 https://github.com/ptbello/localtourguide