Cerca nel blog

Pubblicità

banner-125x125 banner-125x125 banner-125x125banner-125x125

Feed RSS e Newsletter

Puoi seguire il mio blog abbonandoti al feed RSS, se non sai cos'è un feed RSS prova a guardare questo video... Spiega tutto!

Icona Feed RSS

Twitter

PayPal

Se ti piace questo blog puoi pensare ad una donazione.

Tutti i fondi ricevuti saranno utilizzati per il mio sollazzo personale. :-)

Ultimi commenti...

Napolux: @ Meteo diretta: Lo venderanno caro immagino

Meteo diretta: venderanno il loro dominio? :P

Dario Salvelli: Forse la colpa è di Six Apart? ;)

Napolux: @ Dario Salvelli: Beh, per i tempi era un sistema molto avanzato. Ovviamente poi non è riuscito a...

Dario Salvelli: “Davvero ben fatto” mi sembra esagerato, io l’ultima volta che ci ho messo piede...

WordPress, add_filter e altre amenità

venerdì 7 novembre 2008
1 Star2 Stars3 Stars4 Stars5 Stars Vota!
Loading ... Loading ...

Con il nuovo template ho introdotto 3 box informativi colorati che rappresentano rispettivamente un alert (in rosso), informazioni (in blu) e suggerimenti (in verde).

Inizialmente avevo deciso di scrivere il codice "a manina", modificando l'html del post in modo da richiamare le classi giuste alla bisogna: poco sbattimeno, resa perfetta.

Ieri però ho ricevuto un'email da Emanuele che implementa un sistema simile sul suo blog in cui mi chiedeva se avessi risolto il problema "in automatico" o se scrivessi il codice a mano come lui.

Visto che non siamo qui a pettinar le bambole e che a quanto pare il problema è sentito da molti e non solo dal sottoscritto mi sono messo a cercare qualche informazione sul codex.

In 5 minuti il mio piccolo plugin era pronto.

Il plugin, in poche parole, usa la funzione add_filter() (link) per sostituire dei bbCode appositamente creati con il codice HTML necessario a richiamare il CSS dei paragrafi speciali.

Vediamo un esempio: il bbCode [speciale] verrà sostituito dal codice HTML necessario per visualizzarlo correttamente.

add_filter("the_content", "napoluxMessages", 8 );

function napoluxMessages($content)
{
$bbCodes = array("[speciale]","[/speciale]");
$html = array("<p class='speciale'>","</p>");

$content = str_replace($bbCodes,$html,$content);

return $content;
}

La funzione add_filter() accetta in questo caso 3 parametri: il testo su cui deve agire ("the_content") , la funzione che effettuerà la modifica del testo ("napoluxMessages") e la priorità di esecuzione della funzione. E' possibile impostare diversi parametri e agire su qualsiasi elemento del nostro blog. Una lista completa dei tag disponibili la trovate qua.

Le potenzialità di funzioni di questo tipo sono infinite: è possibile, come in questo caso, gestire dei bbCode, oppure possiamo filtrare parolacce nei commenti, aggiungere o togliere il nofollow ai link, includere immagini automaticamente in ogni post...
Con le espressioni regolari poi... Beh, vi lascio immaginare cosa potete  combinare!

Non è niente di trascendentale, ma comunque buon divertimento!

Questo articolo è stato pubblicato venerdì, 7 novembre 2008 alle ore 08:47 Se non vuoi perdere nemmeno un articolo del mio blog abbonati al feed RSS. Se non sai cos'è un feed RSS puoi guardare questo video, spiega tutto!

In alternativa puoi abbonarti alla newsletter, riceverai un'email ogni volta che verrà pubblicato un nuovo post. Il tuo indirizzo email sarà gestito da Feedburner.

  

6 Commenti a “WordPress, add_filter e altre amenità”

  1. Paolo Rossi scrive:

    Apprezzo questi post “tecnici” su wordpress… bravo Francesco!

  2. Tom scrive:

    Il problema di queste soluzioni però è che la corretta visualizzazione dei post rimane legata al funzionamento del plugin. Finchè si tratta di plugin realizzati autonomamente non c’è problema, ma se facendo affidamento su un plugin altrui questo smette di funzionare e non viene più supportato? Il rischio è di trovarsi il blog pieno di tag senza senso…

  3. Napolux scrive:

    @ Tom:
    E’ il problema che sto avendo da quando WP ha attivato la gestione dei tag e ho abbandonato UltimateTagWarrior…

    Vedi qua.

    Sto studiando una soluzione tramite add_filter() però :P

  4. Cristian0 scrive:

    @ Tom:
    Sarebbe buona norma prevedere all’interno del proprio plugin una funzione che disabiliti l’applicazione delle sostituzioni dei BBCode, mostrando il “testo” epurato dai tag aggiuntivi.
    Ho aggiunto questa funzionalità (ad esempio) nell’ultima release dell’estensiona Wikipedia-Autolink per Blogengine.NET (funzione che verrà poi replicata nella corriposndente versione per WordPress)

    Per quanto riguarda i plug-in di terze parti, è possibile implementare un proprio plug-in (o script da lanciare una tantum) che consenta la “bonifica” dei tag obsoleti magari, a partire da un dizionario di stringhe, e “riscrivere” in un colpo solo tutti i commenti o post interesati dall’operazione (previo backup naturalmente).
    Il tutto sempre ricorrendo alla funzione add_filter() citata da Francesco ;-)

  5. Stefano scrive:

    Ciao,
    io ho impostato diverse volte queste “scorciatoie” pe siti di clienti usando il supporto agli “shortcode” disponibile da wordpress 2.5: http://codex.wordpress.org/Shortcode_API

    Il funzionamento è lo stesso del tuo plugin ma ti gestisce automaticamente sia le parentesi quadre [ ] che eventuali attributi ecc…

    Una volta che ci hai preso la mano è un attimo aggiungere il supporto a “ogni ben di Dio”…

    Stef.

  6. Engelium scrive:

    Ciao

    grazie mille …. adesso vedo di smanettarci un po’ anche io :mrgreen: