2. Wordpress
Pillole di sviluppo tips & tricks
http://www.saidmade.com
WordCamp - Milano 22 Maggio 2010
Giovambattista Fazioli - CTO Saidmade Srl
sabato 22 maggio 2010
3. WordPress
Pillole di sviluppo tips & tricks
http://www.undolog.com
WordCamp - Milano 22 Maggio 2010
Giovambattista Fazioli - CTO Saidmade Srl
sabato 22 maggio 2010
9. esegue una dir() nella cartella
/plugins ed apre
- tramite un fopen() -
"tutti" i file alla ricerca
dell'header comment
un commento formattato in modo
particolare che permette a Wordpress
di riconoscere un plugin
sabato 22 maggio 2010
10. se inseriamo nella cartella /plugins
un file mioplugin.php così
configurato:
<?php
// genero errore
for()
a = 4/0;
?>
sabato 22 maggio 2010
11. se inseriamo nella cartella /plugins
un file mioplugin.php così
configurato:
<?php
// genero errore
for()
a = 4/0;
?>
non accade nulla
sabato 22 maggio 2010
12. se inseriamo l’header comment
<?php
/*
Plugin Name: WP MioPlugin
Plugin URI: http://www.saidmade.com/
Description: WP MioPlugin
Version: 1.0.0
Author: Giovambattista Fazioli
Author URI: http://www.saidmade.com
Disclaimer: Use at your own risk. No warranty expressed or implied is
provided.
*/
// genero errore
for()
a = 4/0;
?>
sabato 22 maggio 2010
13. se inseriamo l’header comment
<?php
/*
Plugin Name: WP MioPlugin
Plugin URI: http://www.saidmade.com/
Description: WP MioPlugin
Version: 1.0.0
Author: Giovambattista Fazioli
Author URI: http://www.saidmade.com
Disclaimer: Use at your own risk. No warranty expressed or implied is
provided.
*/
// genero errore
for()
a = 4/0;
?>
non accade nulla
sabato 22 maggio 2010
17. <?php
/*
Plugin Name: WP MioPlugin
Plugin URI: http://www.saidmade.com/
Description: WP MioPlugin
Version: 1.0.0
Author: Giovambattista Fazioli
Author URI: http://www.saidmade.com
Disclaimer: Use at your own risk. No warranty expressed or implied is
provided.
*/
echo “Plugin Attivo”;
?>
la scritta “Plugin Attivo” verrà visualizzata sia lato
Frontend che lato Backend
sabato 22 maggio 2010
20. • Wordpress esegue sempre una dir() in /plugins
sabato 22 maggio 2010
21. • Wordpress esegue sempre una dir() in /plugins
• apre i file - con una fopen() - alla ricerca dell’header
sabato 22 maggio 2010
22. • Wordpress esegue sempre una dir() in /plugins
• apre i file - con una fopen() - alla ricerca dell’header
• esegue il codice solo quando il plugin è attivo
sabato 22 maggio 2010
23. distinguere il
frontend dal
backend
sabato 22 maggio 2010
28. if( is_admin() ) {
require_once( 'backend.php' );
} else {
require_once( 'frontend.php' );
}
Questa è di per sé già una forma di
ottimizzazione
in quanto abbiamo separato i “possibili”
ambienti su cui potrà operare il nostro plugin
sabato 22 maggio 2010
29. plugin che operano solo lato
backend
if( is_admin() ) {
require_once( 'backend.php' );
} else {
// require_once( 'frontend.php' );
}
sabato 22 maggio 2010
30. plugin che operano solo lato
frontend
if( is_admin() ) {
// require_once( 'backend.php' );
} else {
require_once( 'frontend.php' );
}
sabato 22 maggio 2010
33. • la classe funziona da NameSpace
sabato 22 maggio 2010
34. • la classe funziona da NameSpace
• protezione contro la duplicazione di funzioni
sabato 22 maggio 2010
35. • la classe funziona da NameSpace
• protezione contro la duplicazione di funzioni
• protezione verso altri plugin
sabato 22 maggio 2010
36. • la classe funziona da NameSpace
• protezione contro la duplicazione di funzioni
• protezione verso altri plugin
• sviluppo del plugin secondo una filosofia Object Oriented
sabato 22 maggio 2010
37. • la classe funziona da NameSpace
• protezione contro la duplicazione di funzioni
• protezione verso altri plugin
• sviluppo del plugin secondo una filosofia Object Oriented
• ereditarietà tra classi
sabato 22 maggio 2010
38. • la classe funziona da NameSpace
• protezione contro la duplicazione di funzioni
• protezione verso altri plugin
• sviluppo del plugin secondo una filosofia Object Oriented
• ereditarietà tra classi
• miglior riutilizzo del codice
sabato 22 maggio 2010
39. • la classe funziona da NameSpace
• protezione contro la duplicazione di funzioni
• protezione verso altri plugin
• sviluppo del plugin secondo una filosofia Object Oriented
• ereditarietà tra classi
• miglior riutilizzo del codice
• fa figo...
sabato 22 maggio 2010
41. // load the core class
require_once( 'wp-mioplugin_class.php');
// check admin
if( is_admin() ) {
// load admin class
require_once( 'wp-mioplugin_backend.php' );
// create object
$wp_mioplugin_backend = new WPMIOPLUGIN_BACKEND();
} else {
// load client front-end class
require_once( 'wp-mioplugin_frontend.php');
// create object
$wp_mioplugin_frontend = new WPMIOPLUGIN_FRONTEND();
}
sabato 22 maggio 2010
42. class WPMIOPLUGIN_CLASS {
var $version = “1.0.0”;
var $plugin_name = “WP Mio Plugin”;
var $plugin_slug = “wp-mio-plugin”;
...
}
class WPMIOPLUGIN_BACKEND extends WPMIOPLUGIN_CLASS {
var $onlyBackend = “solo per backend”;
function WPMIOPLUGIN_BACKEND() {
echo $this->version;
}
}
sabato 22 maggio 2010
43. class WPMIOPLUGIN_CLASS {
var $version = “1.0.0”;
var $plugin_name = “WP Mio Plugin”;
var $plugin_slug = “wp-mio-plugin”;
...
}
class WPMIOPLUGIN_FRONTEND extends WPMIOPLUGIN_CLASS {
var $onlyFrontend = “solo per frontend”;
function WPMIOPLUGIN_FRONTEND() {
echo $this->version;
}
}
sabato 22 maggio 2010
46. • caricare solo il codice PHP che ci serve in base al
contesto in cui operiamo: Backend, Frontend, Pagine
Template, etc...
sabato 22 maggio 2010
47. • caricare solo il codice PHP che ci serve in base al
contesto in cui operiamo: Backend, Frontend, Pagine
Template, etc...
• caricare script e stili seguendo la regola di sopra
sabato 22 maggio 2010
48. • caricare solo il codice PHP che ci serve in base al
contesto in cui operiamo: Backend, Frontend, Pagine
Template, etc...
• caricare script e stili seguendo la regola di sopra
• utilizzare le funzioni:
sabato 22 maggio 2010
49. • caricare solo il codice PHP che ci serve in base al
contesto in cui operiamo: Backend, Frontend, Pagine
Template, etc...
• caricare script e stili seguendo la regola di sopra
• utilizzare le funzioni:
• wp_register_style() / wp_register_script()
sabato 22 maggio 2010
50. • caricare solo il codice PHP che ci serve in base al
contesto in cui operiamo: Backend, Frontend, Pagine
Template, etc...
• caricare script e stili seguendo la regola di sopra
• utilizzare le funzioni:
• wp_register_style() / wp_register_script()
• wp_enqueue_style() / wp_enqueue_script()
sabato 22 maggio 2010
67. per informazioni e contatti
http://www.saidmade.com
http://www.undolog.com
info@saidmade.com
WordCamp - Milano 22 Maggio 2010
Giovambattista Fazioli - CTO Saidmade Srl
sabato 22 maggio 2010