Plugin API

1.  Introduzione

Questa pagina contiene la documentazione degli agganci API (Application Programming Interface) disponibili per gli sviluppatori di plugin per WordPress. Queste informazioni riguardano WordPress versione 1.2 e successive. Nelle versioni precedenti alla 1.2, l'estensione delle funzionalità era ottenuta attraverso la modifica diretta del codice, tramite i cosiddetti "hacks".

L'archivio ufficiale dei plugin e del sistema di sviluppo è wp-plugins.org, che contiene le diverse versioni dei plugin e dei sistemi per il tracciamento dei bug. Usare questo archivio è fortemente consigliato.

Hello Dolly è il primo plugin per WordPress. I commenti all'interno del suo codice possono aiutare a capire come funziona il plugin e fare da guida riguardo la sintassi da adoperare per scrivere i propri plugin. C'è anche un articolo introduttivo (con una seconda parte) che potrebbe rivelarsi utile. Un esempio abbastanza semplice della struttura del database e delle varie tabelle, è riportata nella descrizione della struttura del Database.

NOTA: Scrivere un Plugin è una lettura obbligata per gli autori di plugin. L'articolo fornisce una panoramica sullo sviluppo dei plugin, delle informazioni su come Aggiungere Menu di Amministrazione, Impostazioni e Opzioni, Istruzioni e molte altre informazioni utili.

2.  Agganci, Azioni e Filtri

Gli agganci sono implementati in WordPress per permettere al tuo plugin di "agganciarsi" all'interno del codice di WordPress. Ci sono due tipi di agganci:

  1. Agganci che producono Azioni. Le Azioni sono funzioni che specificano eventi aggiuntivi che possono essere causati dagli eventi interni di WordPress. Gli Agganci-Azione quindi permettono di aggiungere o rimuovere funzioni la cui esecuzione viene lanciata dalle azioni di WordPress. Questi agganci permettono ai plugin di eseguire delle funzioni ogni volta che si verifica un determinato evento all'interno di WordPress, ad esempio: la pubblicazione di un articolo.
  2. Agganci che producono Filtri. I Filtri sono funzioni che modificano i contenuti di WordPress conservati nel database. Gli Agganci-Filtri permettono di aggiungere o rimuovere i Filtri a vari tipi di contenuto (di solito si tratta di testo) e perciò permettono ai plugin di modificare il contenuto del testo "al volo".

Dal punto di vista della programmazione, Azioni e Filtri sono identici. La funzione add_action non è nient'altro che un alias della funzione add_filter. Nella pratica invece, entrambe fanno cose diverse.

Spesso si può ottenere lo stesso scopo attraverso un'azione e/o un filtro. Ad esempio: si può aggiungere un'azione all'evento publish_post o un filtro al tag the_content. La scelta si basa su ciò che si vuolei ottenere e cioè se si vuole agire una volta sola (primo caso) oppure ogni volta che il contenuto viene visualizzato (secondo caso).

3.  Le Azioni

Le Azioni sono lanciate da uno specifico evento che ha luogo all'interno di WordPress, come ad esempio la pubblicazione di un articolo, la scelta di un tema grafico diverso, o la visualizzazione di una pagina all'interno della sezione amministrativa. Le azioni sono utili per fare riferimento ad ogni cambiamento che avviene all'interno del blog, tuttavia ci sono due usi fondamentali:

  1. Rispondere ad un'azione prodotta dall'utente attraverso la modifica dei dati contenuti nel database o l'invio di email.
  2. Produrre un output in una pagina specifica all'interno del blog o dell'interfaccia amministrativa di WordPress.

3.1  Aggiungere Azioni

Per utilizzare un aggancio per un plugin che sfrutta le azioni, possiamo per prima cosa creare una funzione php di questo tipo:

 function email_friends($post_ID) {
$friends = 'bob@example.org,susie@example.org';
  mail($friends,"Il blog e' stato aggiornato",'Ho scritto un nuovo articolo sul mio blog: http://blog.example.com');
  return $post_ID;
 }

La nostra funzione dovrebbe accettare un solo parametro. Di solito il parametro è l'ID numerico di un articolo o di un commento, ma se non è specificato nella lista sottostante, per maggiore sicurezza devi andare a verificare il codice sorgente di WordPress, cercare la funzione do_action e controllare il secondo parametro.

NOTA: Tieni presente che un altro plugin potrebbe stare già facendo uso della tua nuova funzione se per combinazione hai usato il nome di una funzione già usata nell'altro plugin. Per maggiori informazioni vedi Evitare Funzioni Duplicate.

Le Azioni possono operare sulle variabili globali disponibili all'interno di WordPress, come ad esempio la variabile tabella in $wpdb.

Appena abbiamo completato la nostra funzione, la registramo mediante la chiamata a add_action() nello spazio di esecuzione globale:

 add_action ( 'nome_aggancio', 'nome_della_funzione', [priorità] );

dove,

  1. nome_aggancio è un'aggancio-azione fornito da WordPress. Alcuni agganci-azione trasmettono un argomento che puoi usare nella funzione 'nome_della_funzione'.
  2. nome_della_funzione è il nome della funzione che vogliamo venga eseguita dopo che si è verificato l'evento specificato da 'nome_aggancio'. Questa può essere una funzione PHP standard, una funzione contenuta in WordPress, oppure una funzione definita da noi, nel nostro plugin
  3. priorità è un numero intero, un argomento opzionale che può essere usato per specificare l'ordine secondo il quale devono essere eseguite le funzioni associate ad una particolare azione. Se l'argomento non viene specificato, alla funzione viene assegnata la priorità predefinita 10. Una funzione con priorità 1 viene eseguita prima di un'altra funzione che ha priorità 2, così più piccolo è il numero intero, più alta è la priorità. Le funzioni con priorità uguale vengono eseguite secondo l'ordine in cui sono state aggiunte all'azione

Ad esempio:

 add_action('publish_post', 'email_friends');
function email_friends($post_ID) {
 ..
 }

Allo stesso modo, possiamo anche rimuovere le Azioni dagli agganci-azione.

Salviamo il codice in un nuovo file, all'interno della directory wp-content/plugins.

Leggi la guida Gestione dei Plugin per sapere come si attivano i plugin.

3.2  Gli Agganci Disponibili per le Azioni

Questa è una lista completa degli agganci per plugin disponibili nella distribuzione base di WordPress versione 1.5 beta 1.

NOTA: La lista che segue non comprende gli agganci disponibili nella versione 1.5 finale. Per un elenco più vasto di azioni e filtri, controlla la lista di Skippy.

admin_footer
Parametro Non Usato. Viene eseguito alla fine del pannello di amministrazione, all'interno del tag body. Utile per l'inserimento di contenuto aggiuntivo.

admin_head
Parametro Non Usato. Viene eseguito nella sezione <head> del pannello di amministrazione. Utile per l'inserimento di contenuto aggiuntivo.

admin_menu
Parametro Non Usato. Viene eseguito dopo che viene visualizzata la struttura del menu di amministrazione del pannello di amministrazione. Utile per aggiungere menu addizionali al pannello di amministrazione.

comment_closed
Riceve come parametro l'ID del commento all'articolo. Viene eseguito quando si cerca di visualizzare il form di inserimento dei commenti per un articolo che ha i commenti disabilitati.

comment_form
Riceve come parametro l'ID del commento all'articolo. Marcatore Template. Viene eseguito dopo che viene visualizzato il il form di inserimento dei commenti per un articolo che ha i commenti abilitati.

comment_id_not_found
Riceve come parametro l'ID del commento all'articolo. Viene eseguito quando si cerca di visualizzare il form di inserimento dei commenti per un articolo che non esiste.

comment_post
Riceve come parametro l'ID del commento. Viene eseguito quando viene aggiunto un commento traminte wp-comments.php.

delete_comment
Riceve come parametro l'ID del commento. Viene eseguito quando viene cancellato un commento.

delete_post
Riceve come parametro l'ID dell'articolo. Viene eseguito quando viene cancellato un articolo.

edit_comment
Riceve come parametro l'ID del commento. Viene eseguito quando viene modificato un commento.

edit_form_advanced
Parametro Non Usato. Viene eseguito quando viene visualizzata la pagina di modifica avanzata del pannello di amministrazione, poco prima che venga chiuso il tag <div> che contiene il conenuto dell'articolo all'interno del'area di testo. Utile per inserire campi di tipo input addizionali al modulo di modifica avanzata degli articoli.

edit_page_form
Parametro Non Usato. Viene eseguito all'interno del tag <form> nel modulo di modifica delle pagine statiche. Utile per inserire campi di tipo input addizionali nel modulo di modifica delle pagine.

edit_post
Riceve come parametro l'ID dell'articolo. Viene eseguito ogni volta che viene modificato un articolo.

generate_rewrite_rules
Parametro Non Usato. Viene eseguito ogni volta che vengono ridefinite le regole di riscrittura. Per modificare le regole, è preferibile usare il filtro rewrite_rules_array.

pingback_post
Riceve come parametro l'ID del commento. Viene eseguito quando un commento viene inserito tramite XMLRPC.

private_to_published
Riceve come parametro l'ID dell'articolo. Viene eseguito quando viene cambiato lo stato di un articolo, da privato a pubblico.

publish_phone
Riceve come parametro l'ID dell'articolo. Viene eseguito quando un articolo viene inserito tramite wp-mail.php.

publish_post
Riceve come parametro l'ID dell'articolo. Viene eseguito quando un articolo viene salvato e il suo stato viene settato a "pubblicato", senza tener conto delle impostazioni precedenti. NOTA: per aggiungere un aggancio a questa azione nella versione 1.2, assicurati di specificare una priorità tra 0 e 9. L'aggancio generic_ping non funziona bene e impedisce il funzionamento di agganci che hanno priorità più bassa.

save_post
Riceve come parametro l'ID dell'articolo. Viene eseguito quando un articolo viene salvato nel database.

shutdown
Parametro Non Usato. Viene eseguito quando l'output della pagina è completato.

simple_edit_form
Parametro Non Usato. Viene eseguito quando viene visualizzata la pagina di modifica semplice del pannello di amministrazione, poco prima che venga chiuso il tag <div> che contiene il conenuto dell'articolo all'interno del'area di testo. Utile per inserire campi di tipo input addizionali al modulo di modifica semplice degli articoli.

switch_theme
Riceve come parametro il nome del tema grafico corrente. Viene eseguito quando viene cambiato il tema grafico del blog.

template_redirect
Parametro Non Usato. Viene eseguito prima che venga selezionato il file del tema grafico da usare per visualizzare la pagina richiesta. Utile per fornire template aggiuntivi in base a criteri differenti.

Esempio (a scopo illustrativo): Redirige tutte le richieste al file all.php contenuto nella directory che contiene il template grafico usato nel blog.

 function all_on_one {
 	include(TEMPLATEPATH . '/all.php');
 	exit;
}

 add_action('template_redirect', 'all_on_one');

trackback_post
Riceve come parametro l'ID del commento. Viene eseguito quando un commento viene inserito tramite trackback.php.

wp_footer
Parametro Non Usato. Marcatore Template. Viene eseguito alla fine del tag <body>. Utile per l'inserimento di contenuto aggiuntivo.

wp_head
Parametro Non Usato. Viene eseguito nella sezione <head>. Utile per l'inserimento di contenuto aggiuntivo.

wp_meta
Parametro Non Usato. Viene eseguito nella sezione <li>Meta</li> del file sidebar.php. Utile per l'inserimento di contenuto aggiuntivo.

wp_set_comment_status
Riceve come parametro l'ID del commento. Viene eseguito quando cambia lo stato del commento.

4.  I Filtri

I Filtri sono funzioni che servono a visualizzare e/o a trasformare i dati. Sono ottime per effettuare cambiamenti ai dati "al volo" (p. es. aggiungere il tag <acronim> a determinate parole).

Le funzioni devono restituire un valore modificato. Se il valore del parametro passato alla funzione non viene modificato, allora deve essere restituito il valore originale così da permettere ai plugin che vengono eseguiti successivamente di modificare, se necessario, il valore. Se la tua funzione non restituisce un valore, allora quel valore sarà vuoto e causerà il malfunzionamento degli altri plugin.

Nella versione 1.2 di WordPress, la funzione generic_ping (che è agganciata all'azione publish_post) non fa questo e perciò tutti gli agganci a publish_post con priorità più bassa non funzionano.

4.1  Uso dei Filtri

I Filtri non effettuano nessun cambiamento nel database. Piuttosto vanno pensati come un livello intermedio tra il database e il browser. Tutto ciò che viene passato dal database al browser, deve passare prima attraverso un filtro. Tramite l'aggiunta di filtri è possibile cambiare il modo di visualizzazione dei contenuti senza modificare direttamente ciò che si trova memorizzato nel database.

Possiamo creare una funzione PHP che modifica il testo, come questa:

 function filter_profanity($content) {
  global $profanities;
  foreach($profanities as $profanity) {
    $content=str_ireplace($profanity,'{censored}',$content);
}
  return $content;
 }

(non è necessario scriversi tutte le funzioni, si possono infatti usare tutte le funzioni standard di PHP che modificano il testo, come ad esempio strtoupper)

NOTA: Se scrivi una nuova funzione (ed è possibile che ad un certo punto tu lo voglia), tieni presente che un altro plugin potrebbe già fare uso della tua nuova funzione se per combinazione hai usato il nome di una funzione già usata nell'altro plugin. Per maggiori informazioni vedi Evitare Funzioni Duplicate.

Al di fuori della nostra funzione, (nello spazio di esecuzione generale), possiamo aggiungere il nostro nuovo filtro ad un aggancio:

 add_filter('nome_aggancio', 'nome_filtro', [priorità]);

dove,

  1. nome_aggancio è un aggancio per filtri fornito da WordPress;
  2. nome_filtro è il nome della funzione che si vuole applicare al contenuto specificato da filter_hook. Può trattarsi di un a funzione standard di PHP, una funzione presente nel codice di WordPress, oppure una funzione definita da noi stessi in un plugin;
  3. priorità è un numero intero, un argomento opzionale che può essere usato per specificare l'ordine secondo il quale devono essere eseguiti i vari filtri associati ad un particolare aggancio-filtro. Se l'argomento non viene specificato, al filtro viene assegnata la priorità predefinita 10. Un filtro con priorità 1 viene eseguito prima di un altro filtro che ha priorità 2, così più piccolo è il numero intero, più alta è la priorità. I filtri con priorità uguale vengono eseguiti secondo l'ordine in cui sono stati aggiunti all'aggancio-filtro.

L'esempio sopra riportato può essere aggiunto in questo modo:

 add_filter('comment_text','filter_profanity');

E' possibile rimuovere i filtri dagli agganci tramite la funzione di WordPress remove_filter(). Per maggiori informazioni si veda Rimuovere Azioni e Filtri.

4.2  Agganci Disponibili per i Filtri

Tieni presente che la maggior parte di questi sono marcatori di template.

author_email
TBD
bloginfo
TBD
category_description
viene applicato al campo "descrizione" delle categorie
comment_author
TBD
comment_content_presave
TBD
comment_edit_pre
viene applicato al contenuto del commento prima che venga visualizzato
comment_email
TBD
comment_excerpt
TBD
comment_save_pre
viene applicato al contenuto del commento quando il commento viene ri-salvato nel pannello di amministrazione
comments_number
TBD
comment_text
passa il testo del commento come stringa. Ad esempio, questo brevissimo estratto da un plugin trasforma tutto il testo dei commenti in grassetto, ma non cambia assolutamente il testo dei commenti contenuto nel database:

add_filter('comment_text', 'commenti_grassetto');

function commenti_grassetto($comment = '') { return "$comment"; }

comment_url
passa l'URL di chi lascia un commento (se - naturalmente - viene indicato dall'autore del commento). L'esempio seguente aggiunge a ciascun URL, il redirect di Google, senza modificare gli URL memorizzati nel database:

add_filter('comment_url', 'google_redirect'); function google_redirect($url = '') { if ('' != $url) { return "http://www.google.com/url?sa=D&q=$url"; }

}

content_edit_pre
TBD
content_save_pre
viene applicato al contenuto dell'articolo quando il l'articolo viene salvato nel pannello di amministrazione o tramite XML-RPC
default_content
permette ad un plugin di modificare il valore predefinito del contenuto di un nuovo articolo
default_excerpt
permette ad un plugin di modificare il valore predefinito dell'estratto di un nuovo articolo
default_title
permette ad un plugin di modificare il valore predefinito del titolo di un nuovo articolo
excerpt_edit_pre
TBD
excerpt_save_pre
TBD
format_to_edit
permette ad un plugin di modificare i dati salvati di un articolo prima che venga visualizzato per la modifica nell'editor degli articoli
format_to_post
TBD
get_comment_author_url
usare questo al posto del filtro comment_url
get_comment_author_link
restituisce il codice HTML del link all'autore del commento con il nome dell'autore linkato
link_rating
permette ad un plugin di modificare il valore memorizzato relativo al punteggio di un link prima che venga usato
list_cats
viene richiamato due diverse volte:
  1. una volta per ciascun elemento presente nella lista delle categoria, quando nel tema vengono invocate le funzioni wp_list_cats() o list_cats(). Il primo paramentro è il nome della categoria. Il secondo (opzionale per la 1.5.1) è l'oggetto della categoria.
  2. alla fine della lista delle categorie. Il primo parametro è l'intero testo della lista. Non viene passato nessun secondo paramentro.

Se si vuole specificare il secondo parametro, è bene assicurarsi di inserire un valore predefinito. Ecco un esempio che stampa l'ID della categoria dopo il nome e alla fine della lista:

function foo_bar($content, $category = null) { if ($category == null) { return $content . '<li>(fine della lista)</li>'; } else { return $content . " (ID={$category->cat_ID})"; } }

add_filter('list_cats', 'foo_bar', 10, 2);

loginout
permette ad un plugin di modificare il tag e il testo che creano il link alla pagina di logout di WordPress.
phone_content
TBD
post_comment_text
TBD
posts_where
permette di cambiare la clausola WHERE della query che restituisce l'array contenente gli articoli.
posts_where_paged
permette di cambiare la clausola WHERE della query che restituisce l'array contenente gli articoli e viene eseguita dopo le clausole predefinite WHERE che producono la paginazione degli articoli.
'''posts_join
permette ad un plugin di modificare la clausola JOIN della query che restituisce l'array contenente gli articoli. Di solito viene usata per aggiungere una tabella al JOIN, in combinazione con posts_where.
posts_join_paged
permette ad un plugin di modificare la clausola JOIN della query che restituisce l'array contenente gli articoli e viene eseguita dopo le clausole predefinite JOIN che producono la paginazione degli articoli.
post_link
permette ad un plugin di modificare i link agli articoli che vengono auto-generati, p. es tramite i tag dei template.
posts_orderby
permette ad un plugin di modificare la clausola ORDER BY della query che restituisce l'array contenente gli articoli.
preprocess_comment
prima di processare un commento, viene chiamato con il commento passato come array. Dovrebbe restituire un array, i cui indici sono comment, comment_post_ID, user_ID, user_ip, user_domain, user_agent, author, email, url, approved.
pre_comment_approved
prima che un commento venga memorizzato nel database, questo filtro permette di accedere alle impostazioni correnti riguardanti l'approvazione del commento. Per accedere ai dati riguardanti il commento si possono usare le variabili globali.
pre_commment_author_name
prima che un commento venga memorizzato nel database, questo filtro permette di effettuare operazioni sul nome dell'autore. Viene richiamato passando come parametro il nome dell'autore in forma di stringa e restituisce una stringa.
pre_comment_author_email
prima che un commento venga memorizzato nel database, questo filtro permette di effettuare operazioni sull'email dell'autore. Viene richiamato passando come parametro l'email dell'autore in forma di stringa e restituisce una stringa.
pre_comment_author_url
prima che un commento venga memorizzato nel database, questo filtro permette di effettuare operazioni sull'URL inserito dall'autore. Viene richiamato passando come parametro l'URL dell'autore in forma di stringa e restituisce una stringa.
pre_comment_content
prima che un commento venga memorizzato nel database, questo filtro permette di effettuare operazioni sul testo del commento inserito. Viene richiamato passando come parametro il testo del commento in forma di stringa e restituisce una stringa.
query_string
TBD
register
permette ad un plugin di modificare i tag e il testo prodotti dal link alla registrazione in WordPress.
rewrite_rules
l'uso di questo filtro è deprecato nella versione 1.5, si veda mod_rewrite_rules.
rewrite_rules_array
TBD
sanitize_title
TBD
single_post_title
TBD
stylesheet
TBD
template
TBD
the_category
TBD
the_category_rss
TBD
the_content
viene applicato al contenuto dell'articolo prima che venga elaborato. Passa il contenuto degli articoli come stringa. Il seguente codice sostituisce tutte le occorrenze della parola foo con la parola bar, senza modificare il contenuto degli articoli memorizzati nel database:

add_filter('the_content', 'foo_bar');

function foo_bar ($content = '') { return preg_replace("/foo/", "bar", $content); }

the_date
TBD
the_excerpt
TBD
the_excerpt_rss
TBD
the_posts
TBD
the_time
TBD
the_title
TBD
the_title_rss
TBD
the_weekday
TBD
the_weekday_date
TBD
title_edit_pre
TBD

Filtri per il Template

E' possibile applicare dei filtri anche ai Template mediante i seguenti agganci per filtri. Si veda anche l'aggancio template_redirect riportato più su in Gli Agganci Disponibili per le Azioni.

404_template
archive_template
author_template
category_template
date_template
home_template
page_template
paged_template
(da eliminare, vedi le note al bug 825)
search_template
single_template
comments_popup_template

5.  Rimuovere Azioni e Filtri

Non sei l'unico da usare la API, questa è infatti la stessa tecnica che usano gli sviluppatori per ottenere tutta una serie di effetti. Se per caso hai bisogno di rimuovere alcune azioni o filtri per far funzionare il tuo plugin, puoi farlo mediante l'uso di remove_filter('aggancio','filtro') o di remove_action('aggancio','azione').

Ad esempio: remove_action('publish_post','generic_ping'); impedisce al tuo weblog di inviare dei ping ogni volta che viene creato un nuovo articolo.

Se un aggancio da eliminare è stato registrato con una priorità diversa da quella predefinita (10), allora quando invochi remove_action() devi specificare anche la priorità.

In generale, è consigliabile non rimuovere niente, a meno che tu non sappia esattamente ciò che stai facendo. Per facilitare il controllo dei filtri e delle azioni, ecco quindi una lista dei file dove vengono resi disponibili gli agganci.

6.  Filtri e Azioni Applicati di Default

6.1  WordPress 1.5

I filtri e le azioni predefinite sono specificate nel file wp-includes/default-filters.php. Per favore controlla il file in questione nell'ultima versione disponibile di WordPress'.

6.2  WordPress 1.2

Relativi agli Articoli

 wp-rdf.php:add_filter('the_content', 'trim');
template-functions-post.php:add_filter('the_content', 'convert_smilies');
 template-functions-post.php:add_filter('the_content', 'convert_chars');
 template-functions-post.php:add_filter('the_content', 'wpautop');
 vars.php:add_filter('the_content', 'wptexturize');
 functions.php:add_action('publish_post', 'generic_ping');
 template-functions-post.php:add_filter('the_excerpt', 'convert_smilies');
 template-functions-post.php:add_filter('the_excerpt', 'convert_chars');
 template-functions-post.php:add_filter('the_excerpt', 'wpautop');
 vars.php:add_filter('the_excerpt', 'wptexturize');

Relativi ai Titoli

 template-functions-post.php:add_filter('the_title', 'convert_chars');
 template-functions-post.php:add_filter('the_title', 'trim');
 vars.php:add_filter('the_title', 'wptexturize');
 vars.php:add_filter('single_post_title', 'wptexturize');
 template-functions-post.php:add_filter('the_title_rss', 'strip_tags');
 functions-formatting.php:add_action('sanitize_title', 'sanitize_title_with_dashes');

Relativi ai Commenti

 template-functions-comment.php:add_filter('comment_excerpt', 'convert_chars');
 kses.php:add_filter('comment_author', 'wp_filter_kses');
 template-functions-comment.php:add_filter('comment_author', 'wptexturize');
 template-functions-comment.php:add_filter('comment_author', 'convert_chars');
 vars.php:add_filter('comment_author', 'wptexturize');
 template-functions-comment.php:add_filter('comment_email', 'antispambot');
 template-functions-comment.php:add_filter('comment_url', 'clean_url');
 wp-comments-popup.php:add_filter('comment_text', 'popuplinks');
 template-functions-comment.php:add_filter('comment_text', 'convert_chars');
 kses.php:add_filter('comment_text', 'wp_filter_kses');
 template-functions-comment.php:add_filter('comment_text', 'make_clickable');
 template-functions-comment.php:add_filter('comment_text', 'wpautop', 30);
 template-functions-comment.php:add_filter('comment_text', 'balanceTags');
 template-functions-comment.php:add_filter('comment_text', 'convert_smilies', 20);
 vars.php:add_filter('comment_text', 'wptexturize');

Relativi alle Categorie

 vars.php:add_filter('category_description', 'wptexturize');
 vars.php:add_filter('list_cats', 'wptexturize');

Misti

 vars.php:add_action('wp_head', 'doGeoUrlHeader');
Ultima modifica il 21/02/2006 ore 05:25