Riassumere i post in WordPress: the_content, the_excerpt

Scritto il 4 gen 2009 in Wordpress10 commenti letto 1533 volte.

Spesso quando si visualizzano dei listati di post in WordPress (categorie, archivi, tag) si preferisce mostrare al visitatore solamente una parte dei post, un riassunto, sia per un discorso di posizionamento sia per l’usabilità.

Infatti quando vengono mostrati i post al completo si può incorrere in qualche contenuto duplicato, oppure, quando vi sono un numero elevato di contenuti, si rischia di trasmettere un senso di dispersione all’utente che si trova davanti troppa carne al fuoco.

Per fortuna il nostro fido CMS ci viene incontro con due funzioni molto importanti in questo senso: the_content e the_excerpt. Analizziamo ora le differenze di questi due strumenti, cosa fanno, come si usano e quando conviene usare uno piuttosto che l’altro.

the_content

Questa è la funzione di default che serve semplicemente a richiamare tutto il contenuto del post compreso il contenuto multimediale dello stesso. Infatti la si trova in tutti i file che generano le pagine del blog che mostrano gli articoli. Solitamente tali file sono index.php, single.php, archive.php, home.php più vari ed eventuali a seconda del template utilizzato.

La sua sintassi di base è

<?php the_content( ) ?>

che non fà altro che mostrare tutto il contenuto di un post. Per utilizzarla al fine di “riassumere” un contenuto è necessario usare un tag specifico da posizionare all’interno dell’articolo nel punto preciso in cui avverrà il taglio. Tale tag è

<!--more-->

da scrivere esattamente così altrimenti non verrà riconosciuto.

Tornando alla funzione vera e propria quando incontrerà quel tag mostrerà un link che invita l’utente a cliccare per leggere la parte restante del post. Ovviamente è possibile personalizzare tale link dato che può anche avere delle ricadute a livello di posizionamento. Vediamo queste modifiche.

Se lascerete la sintassi di base l’anchor-text del link sarà “more…” che risulta molto antipatico sia a livello di usabilità che a livello di seo.

All’ interno delle parentesi però è possibile specificare alcuni importanti parametri per personalizzare tale link.

<?php the_content('testo del link', 'strip_teaser', 'file a cui puntare' ) ?>

Lo strip_teaser è un valore (TRUE o FALSE) che indica se mostrare o meno il testo antacedente per cui consiglio di lasciarlo così come è, mentre nel terzo campo è possibile specificare se puntare ad uno specifico file e anche qui direi di lasciare tutto intatto a meno di particolari preferenze.

Nel testo del link è possibile anche inserire direttamente il titolo del post in questo modo:

<?php the_content("Continua a leggere " . the_title('', '', false)); ?>

che in questo caso specifico mostrerebbe: Continua a leggere Riassumere i post: the_content, the_excerpt.

the_excerpt

Questa funzione non fà altro che tagliare automaticamente l’ articolo dopo i primi 55 caratteri senza però inserire nessun link nel punto del “taglio” e senza poter modificare il carattere mostrato ossia tre puntini di sospensione.

In realtà si può andare a mettere mano ad alcuni parametri tramite il plugin the_excerpt Reloaded che consente di cambiare il numero di parole visualizzate oltre a molti tag HTML che altrimenti verrebbero eliminati. Ritengo però che sia sconsigliato installare un plugin a questo solo scopo a meno che non sia strettamente necessario, dato che questi ultimi possono rallentare il sito.

Differenze tra i due tag

Le differenze sostanziali sono piuttosto evidenti e consistono nel fatto che the_content consente un intervento più mirato, preciso e personalizzato mentre l’altro risultando completamente automatico costringe il webmaster a sperare che le cose vadano sempre bene ed inoltre pecca di usabilità.

Consiglio di utilizzare la funzione the_excerpt solo nel caso in cui si abbiano già un numero elevato di articoli da “tagliare” (visto che inserire il tag <!– more –> manualmente potrebbe rivelarsi un lavorone) o nel caso in cui non si abbiano particolari preferenze.

Tags: ,

Articoli che potrebbero interessarti

10 comments

» Comments RSS Feed
  1. Grazie per la dritta, cercavo proprio questo.

    Se possibile, mi servirebbe una terza funzione, cerco di spiegarmi meglio:

    Blog con WordPress, ho il plug-in “All in One Seo” che tra le tante cose permette di personalizzare il meta description; mi potresti aiutare a richiamare detta funzione?

    In pratica…

    vorrei renderlo

    dove al posto degli * mettere il comando per richiamare la meta description.

    Grazie comunque e complimenti per il blog

  2. Ciao ady, grazie per i tuoi complimenti. :)

    Non ho ben capito cosa vuoi ottenere, potresti essere più chiaro per favore?

  3. Ciao Dario,

    i tuoi articoli sono sempre molto chiari….

    Cercavo proprio una spiegazione semplice sulla Funzione the_excerpt.

    In pratica per un’altro progetto stavo testando il plugin FeedWordPress che permette di realizzare una sorta di aggregatore di feed prelevando il il Feed Rss di altri Blog, questo plugin però riprende i post per intero e non preede un’opzione come la fuzione the_excerpt, che spezzi il post.

    Ora che ho compreso il funzionamento della funzione the_excerpt, mi chiedevo se apportando delle modifiche al codice del Template, potevo aggiungere dopo il sunto del post il Tag “More” per far comparire il tipico messaggio “Continua a Leggere, ecc”

    Ti ringrazio in anticipo della tua risposta….

    Saluti Luigi

  4. Ciao,
    ti ringrazio per i complimenti.

    Per effettuare la modifica che vuoi tu devi aprire il file post-template.php che trovi nella cartella wp-includes e recarti alla riga 221 (oppure 226 se hai la versione 2.8 di WordPress).

  5. Grazie,
    molto interessante!
    Ciao
    M.

  6. Complimenti davvero! Ottimo articolo! Ti linkerò senz’altro nel mio blog…

    Ciao :)

  7. Ciao :)
    la tua spiegazione è stata chiarissima ma… non riesco a fare una cosa che sarebbe una via di mezzo tra le due funzioni.
    Voglio visualizzare un articolo in due parti.. a sinistra le immagini inserite all’interno del post e a destra il testo. Attraverso una funzione di thumbnail riesco a visualizzare le img come volevo. Nel div dedicato al testo ho inserito la funzione the_excerpt perchè ovviamente non mi deve stampare le foto… ma cosi facendo mi elimina anche tutti i tag di formattazione (p, b, etc..)
    C’è un modo per usare la funzione the_content senza utilizzare il tag o mi consigli di usare the_excerpt Reloaded?
    Grazie in anticipo :)

  8. Ciao Federica,
    io penso che il plugin di cui parli (the_excerpt Reloaded) faccia proprio al caso tuo! ;)

  9. grazie! ma alla fine ho risolto in altro modo che vi dico cosi può ritornare utile…

    ho copiato la funzione wp_trim_excerpt() nel file ‘function.php’ del mio tema rinominandola my_trim_excerpt().
    Ho sostituito la riga —-> $text = strip_tags($text);
    con ———————–> $text = strip_tags($text, ‘‘);

    sempre nello stesso file (dopo la funzione) ho inserito la stringa:
    remove_filter(‘get_the_excerpt’, ‘wp_trim_excerpt’);

    In pratica inserisco i tag che voglio vedere :D :D

  10. Beh allora grazie infinite Federica per aver condiviso questa tua preziosa soluzione. Tornera’ sicuramente utile a qualcun altro! ;)

Scrivi un commento

- Torna alla Home Page di IoWebMaster