Una funzionalità che può spesso tornare utile sul vostro blog WordPress è quella di inserire un testo alla fine di alcuni post, in modo automatico.
Ad esempio, una buona idea per incrementare i nostri guadagni può essere quella di inserire una breve frase, con tanto di link al programma di affiliazione, sotto tutti i post di una certa categoria.
Oppure potrebbe servirci mettere una firma o dei link solamente sotto i post di un determinato autore.
Ovviamente sarebbe abbastanza scomodo farlo a mano, vediamo quindi come inserirli in modo del tutto automatico.
Ci sono due modi: le funzioni che seguono potete o metterle in un file a parte e creare così un plugin che andrà attivato come tutti gli altri, oppure inserirle nel file functions.php del vostro tema.
Per prima cosa andiamo a sfruttare il filtro sul the_content e ci aggangiamo una nuova funzione che chiameremo aggiungi_link:
Da notare in particolare il terzo parametro: quell’1 indica l’ordine di priorità con cui il filtro andrà applicato, se ci sono altre funzioni che agiscono sullo stesso elemento. Se, ad esempio, avete altri plugin come ShareThis o OKNOtizie, in questo modo il testo che aggiungeremo comparirà prima delle cose aggiunte da questi altri plugin.
Vediamo ora la funzione vera e propria per inserire un testo, in base alla categoria:
global $post;
$category = get_the_category();
$cat = $category[0]->term_id;
if($cat == 189){
$content .= 'Testo da inserire';
}
return $content;
}
Il funzionamento è molto semplice: se il post si trova nella categoria numero 189, aggiunge alla fine il testo tra virgolette.
Ecco, invece, come inserire un testo a seconda dell’autore:
global $post;
$id = get_the_author_id();
if($id == 2){
$content .= 'Testo da inserire';
}
return $content;
}
Ovviamente entrambe le funzioni sono personalizzabili, potete cambiare gli id e i testi da aggiungere. Infine, potete anche fonderle in una unica funzione e sftruttare entrambe le condizioni.
Penso sia tutto. Se ci sono domande o problemi, lasciate pure un commento.
UPDATE 26/01/2009
Se preferite non scrivere neanche una riga di codice, ho creato un plugin per WordPress che implementa questo semplice trick. Si chiama Add2post.




Ciao e complimenti per questo lavoro!
Sto usando il tuo Plugin e funziona alla grande!!
Solo una cosa… sarebbe possibile scegliere come condizione non l’autore o la categoria ma bensì un certo TAG ?
Cioè fare in modo che il testo sia aggiunto a tutti i post che hanno quel determinato TAG!
Immagino che si possa fare con le funzioni ma sicuramente si potrà fare anche modificando il plugin che sarebbe comodissimo
Nel caso potresti dirci che righe cambiare?
GRAZIE MILLE…
Ciao, e se volessi inserire un testo all’inizio di ogni articolo anzichè alla fine? Quale codice dovrei cambiare?
Ciao Ghido,
sto usando il tuo plugin Add2post e mi stavo chiedendo se fosse possibile personalizzarlo. MI spiego meglio.
Vorrei che il testo che vado ad inserire in fondo al post sia racchiuso in un box, magari con un colore diverso.
Ho pensato – con le minime conoscenze che ho – di inserire uno stile nello style del mio wordpress, ma non ottengo il risultato desiderato.
Puoi darmi un consiglio?
grazie
Ottimo!
Si, perfetto.
Proprio quello che cercavo
Grazie ancora, soprattutto per l’immediata risposta !
Buona giornata
Di nulla, alla prossima!
Ciao, complimenti per il tuo post.
Volevo farti una piccola domanda.
Per visualizzare il testo predefinito nei post a prescindere dal nome dell’utente come devo fare ?
Grazie mille !
Ciao, Matteo.
Se vuoi inserire un testo in tutti i post, senza imporre alcuna condizione, basta che togli tutti gli IF e lasci solo:
$content .= 'Testo da inserire';
return $content;
}
add_filter('the_content', 'aggiungi_link', 1);
Spero di aver correttamente interpretato la tua domanda.
Ciao!
Ciao, beh, io direi proprio di si, considerato il fatto che il copia e incolla di codice in wordpress dà problemi; potresti divulgarlo proprio come tuo plugin e sarebbe una cosa, credo di non sbagliare, unica almeno nel panorama dei plugin italiani (almeno io non ne ho trovati altri così, se li trovate fate un fischio:)); ciao!
Ed ecco infine il plugin, in modo che non bisogna scrivere nemmeno una riga di codice: Add2post. Spero la cosa sia gradita.
[Comment ID #1356 Will Be Quoted Here]
[Comment ID #1359 Will Be Quoted Here]
Grazie! E’ da un po’ che avevo in lista questo post, a saperlo che ne avevate così bisogno l’avrei scritto prima
Dite che forse è anche il caso che metto a dispozione il file sorgente da scaricare, bello e pronto?
Eh si, confermo Lorenzo, è l’unica guida in italiano per fare una cosa del genere; complimenti!! Auguri a tutti, ciao!
Ottimo Daniele, ci voleva proprio questa guida. Ho cercato ovunque ma in italiano proprio non c’è un bel niente!
Grazie
Ottimo, sono contento tu abbia risolto!
Ciao, alla prossima!
Ok, ora funziona, il problema lo dava wordpress perché metteva degli spazi prima di ogni riga facendo copia e incolla e levando questi spazi funziona a meraviglia; complimenti e grazie; auguri ancora, ciao!
mmm…. non è che ti dà problema con gli apici? Prova a riscrivere tutti gli apici a mano, senza fare copia e incolla dal mio blog.
Scusa, volevo dire questa:
global $post;
mi confermi che va scritta così?
Si, sicuro purtroppo; l’errore che dà credo sia nella riga
function aggiungi_link($content = ”) {
e lo dà provando ad attivare il plugin…
Non so cosa dirti… Il codice che ti ho scritto nel commento precedente a me funziona perfettamente.
Sicuro di averlo copiato bene? Non hai dimenticato qualche punto e virgola?
Intanto grazie ancora; ancora non ci siamo…: mi dà questo errore:
Parse error: syntax error, unexpected T_STRING in /web/htdocs/www.nomesito.it/home/wp-content/plugins/aggiungilink.php on line 10
Soluzioni?
Così è come dev’essere la pagina del plugin:
/*
Plugin Name: Aggiungi link
Description: Aggiunge un link alla fine dei post
Author: Daniele Ghidoli
Author URI: http://www.bigthink.it
*/
function aggiungi_link($content = '') {
global $post;
$user = get_the_author_login();
if($user == 'utenteprova'){
$content .= 'Testo da inserire';
}
return $content;
}
add_filter('the_content', 'aggiungi_link', 1);
?>
Provando ad attivare il plugin mi dà un parse error on line 13 quella
global $post;
Se puoi darmi un esempio di come deve essere la pagina del plugin, includendo anche la riga add filter… te ne sarei grato, ciao!
Ciao, intanto grazie!
Ho creato la pagina .php del plugin; ora, la riga
add_filter(‘the_content’, ‘aggiungi_link’, 1);
non ho capito dove inserirla; la devo mettere sempre nello stesso file .php incollandola così come l’hai scritta tu subito sopra a tutto il testo che mi hai scritto nel punto 3?
Ciao, Paolo. Dunque:
1) La riga add_filter devi inserirla appena primo o subito dopo la definizione della funzione aggiungi_link.
2) Se vuoi metterlo come plugin, dovrai creare un nuovo file (es: aggiungi-link.php) ed inserirlo nella tua cartella dei plugin. Dentro a questo file incolli il filtro e la funzione.
Come intenstazione del file (prima di scriverci qualsiasi cosa), dovrai invece mettere un commento col nome del plugin, autore e descrizione. Vedi qua un esempio.
3) Se invece dell’id, preferisci il nome dell’utente, allora al posto della funzione get_the_author_id() dovrai usare get_the_author_login(). Quindi:
global $post;
$user = get_the_author_login();
if($user == 'utenteprova'){
$content .= 'Testo da inserire';
}
return $content;
}
Spero di aver risolto ogni tuo dubbio. Ciao e auguri anche a te!
Ciao, scusami non mi è chiara una cosa:
la riga:
add_filter(‘the_content’, ‘aggiungi_link’, 1);
ddove va inserita?
E se il resto lo volessi mettere come plugin, facendo in modo ovviamente che sia riconosciuto come plugin? L’id dell’utente, nel caso della creazione del plugin per l’inserimento di testo in base all’utente che pubblica, posso metterlo anche inserendo proprio l’username, per esempio “utenteprova”?
Scusa le tante domande, aspetto notizie, ciao e auguri!