Crearsi un plugin per le funzioni personalizzate
Ricorderete che nel mio post precedente consigliavo di aggiungere una funzione personalizzata in un plugin apposito, destinato a raccogliere tutte le funzioni che volete aggiungere al vostro blog. Dovrete creare da voi stessi questo plugin e non è per nulla difficile. In questo modo, quando vorrete aggiungere una nuova funzione globale del blog (per “globale” intendo che non sia legata specificamente al tema che state usando), vi basterà aggiungerla in coda alle altre e sarà subito disponibile. In aggiunta, se cambiate tema, le funzioni saranno sempre disponibili e, se dovete disattivarle, vi basterà disattivare il plugin.
Vediamo come si fa.
Il file principale
Create una cartella sul vostro PC e datele il nome che
più vi aggrada, ad esempio “funzioni-mio-blog”, senza usare spazi. Al suo
interno create un file di testo, utilizzando un editor di testo puro, e
chiamatelo ad esempio funzioni-mio-blog.php.
All’interno di questo file incollate l’intestazione del plugin, ad esempio:
<?php
/*
Plugin Name: Le funzioni del mio blog
Description: Contiene le funzioni personalizzate del mio blog.
Plugin URI: http://www.example.com/wordpress/wordpress-plugins/funzioni-mio-blog/
Author: Mio Nome
Author URI: http://www.example.com/
Version: 1.0
License: GPLv3 or later
*/
Questa intestazione serve a WordPress per capire che si tratta di un plugin e che deve trattarlo in quanto tale. L’unica riga veramente necessaria è solo quella del “Plugin Name”, ma le altre sono altamente raccomandate.
A seguire potete inserire la vostra prima funzione. Ad esempio, questa:
1function get_archive_count() {
2 // Ci servono queste due variabili globali
3 global $wp_query, $paged;
4
5 // Preleviamo il numero di post trovati
6 $arc_count = $wp_query->found_posts;
7
8 // Se ci sono più pagine
9 if ( $arc_count > get_option( 'posts_per_page' ) ) {
10 // Se siamo sulla prima pagina impostiamo il valore a 1
11 if( $paged == 0 ) $paged = 1; // La prima pagina di una serie ha valore 0;
12 // Stampiamo la riga con il numero di pagine
13 $output = sprintf( __( '%1$s posts &mdash; page %2$s of %3$s', 'my-plugin' ), $arc_count, $paged, $wp_query->max_num_pages );
14 // Altrimenti, se c'è una sola pagina
15 } else {
16 // Stampiamo la riga senza il numero di pagine
17 $output = sprintf( _n( '%s post', '%s posts', $arc_count, 'my-plugin'), number_format_i18n( $arc_count ) );
18 }
19
20 // Restituiamo l'output
21 return $output;
22}
È la funzione di cui vi parlavo nel mio precedente post. Dopo la chiusura della funzione (cioè l’ultima parentesi graffa), andate a capo (anche più volte per distanziare visivamente le funzioni tra loro) e potete incollare tutte quelle che desiderate. Ricordate che ogni funzione è definita in questo modo:
function nome_funzione() {
// contenuto della funzione
}
I commenti possono essere di due tipi:
- a riga singola, preceduti dal doppio slash (
//); - a righe multiple, aperti da slash-asterisco (
/*) e chiusi da asterisco-slash (*/).
Ad esempio:
1function nome_funzione() {
2 // Recuperiamo la variabile globale $wp_query
3 global $wp_query;
4
5 /* Stampiamo una informazione
6 del post
7 che ci interessa
8 */
9 echo '<p class="post-info">' . get_post_meta( $wp_query->post->ID, 'post_info', true ) . '</p>';
10}
Commentare le varie righe di codice è molto utile non solo per chi legge il vostro codice, ma anche per voi stessi se, a distanza di tempo, lo riprendete e non ricordate esattamente a che serve quella riga o perché l’avete messa lì.
Una volta che avrete inserito tutte le funzioni che vi servono, caricate via
FTP la directory del plugin /wp-content/plugins/ oppure
comprimetela in formato .zip e caricatela dal pannello di amministrazione di
WordPress e attivate il plugin.
Questo è in sostanza quello che serve di base per farvi questo plugin
personalizzato. Visto che il plugin, per sua natura, non va condiviso con altri
perché contiene funzioni che servono solo a voi, non è necessario seguire le
altre indicazioni che il Codex
chiede, come ad esempio la
creazione del file readme.txt, un file fondamentale se si vuole pubblicare il
plugin sul repository di WordPress. Il senso di questo articolo non è infatti la
pubblicazione di questo particolare plugin, ma quello di poterselo creare da sé
e di non perdersi le funzioni che ci piacerebbe tenere ad ogni cambio di tema.
Spezzare il plugin in più file
Se il plugin cresce e sta diventando pieno di funzioni, potrebbe essere utile organizzarlo in maniera più razionale, in modo da trovare subito le funzioni che stiamo cercando.
Il plugin che mi sono creato è organizzato così:
file principale
|--> inc/filtri.php
|--> inc/funzioni.php
|--> inc/widgets.php
|--> inc/shortcodes-docs.php
|--> e così via...
In altre parole, nella directory principale del plugin c’è solo il file
principale mentre nella sotto directory inc/ ci sono diversi file, dove ognuno
di essi contiene funzioni in base alla loro natura, come si intuisce dai nomi
del file.
Il file principale è costituito da queste righe:
1<?php
2/*
3 Plugin Name: Le funzioni del mio blog
4 Description: Contiene le funzioni personalizzate del mio blog.
5 Plugin URI: http://www.example.com/wordpress/wordpress-plugins/funzioni-mio-blog/
6 Author: Mio Nome
7 Author URI: http://www.example.com/
8 Version: 1.0
9 License: GPLv3 or later
10*/
11
12include_once 'inc/filtri.php';
13include_once 'inc/funzioni.php';
14include_once 'inc/widgets.php';
15include_once 'inc/shortcodes-docs.php';
16// e così via...
Per ogni file da caricare si inserisce una riga di include_once. I file da
caricare contengono soltanto le funzioni, senza altre specifiche particolari.