Solo il blog di un altro web designer.
Postato il 12 Febbraio 2007
Mi sembra doveroso premettere che lo spunto di questa riflessione me l’ha dato il buon Simone con il suo articolo I sommari dinamici non sono accessibili.
A tal proposito, ho pensato di proporre una soluzione al problema per chi tra voi usa WordPress come piattaforma di pubblicazione.
Piccola nota a margine, come saprete WordPress prevede l’utlizzo di per interrompere il contenuto di un articolo, e quindi generare quello che, almeno all’apparenza, sarebbe un sommario. Tuttavia, penso che se vogliamo davvero usare dei sommari, sia giusto utilizzare il campo del form appositamente preposto a tale funzione.
Esistono su WordPress due marcatori di template per mostrare, rispettivamente, il contenuto di un post o il suo sommario: sono le funzioni the_content() e the_excerpt().
La funzione the_content() prende direttamente il contenuto del campo post_content nella tabella wp_posts e lo processa secondo i filtri che abbiamo impostato; la funzione the_excerpt() invece va a pescare il contenuto del campo post_excerpt per poi filtrarlo in maniera identica a quella utilizzata per l’altra funzione.
Ora, nel caso che l’utente abbia inserito la funzione post_excerpt nel proprio template, nel momento in cui il sommario veloce non viene scritto, la funzione si premura di stampare a video le prime n parole del campo post_content, seguite da una serie di caratteri per indicare la continuazione del testo, ovvero [...].
Tuttavia, per le ragioni già spiegate nell’articolo sopra citato, ciò non risulta essere la soluzione ottimale. Se non si vuole mettere mano al codice sorgente di WordPress, ecco un piccolo e veloce rimedio per chi volesse utilizzare saltuariamente i sommari di WordPress, senza per quello peccare in accessibilità quando gli stessi non siano compilati.
Quindi, nel vostro template, al posto delle funzioni sopra citate, potreste scrivere qualcosa del tipo:
<?php if (trim($post->post_excerpt) != "") : ?>
<?php the_excerpt(); ?>
<p>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Prosegui nella lettura di '<?php the_title(); ?>'">
Continua …
</a>
</p>
<?php else: ?>
<?php the_content('Continua …'); ?>
<?php endif; ?>
Tradotto: se il sommario è stato scritto, bene, stampalo, e magari aggiungici anche una dicitura ‘continua’ per comunicare all’utente che l’articolo prosegue (altro che [...]). In caso contrario mostra il contenuto del post nella sua interezza.
Se per scrivere i vostri post utilizzate Textile o Markdown, il codice riportato sopra potrebbe produrre qualche errore (mi è capitato che mi desse dei paragrafi annidati) che comprometterebbe la validazione del documento.
Per risolvere ciò, una soluzione abbastanza rapida ed indolore è quella di modificare il file post-template.php nella cartella /wp-includes della vostra installazione di WordPress.
Andate fino alla funzione the_excerpt() (intorno alla linea 113) e sosituite:
echo apply_filters('the_excerpt', get_the_excerpt());
con
echo apply_filters('the_content', get_the_excerpt());
Salvate, uploadate, e i conti dovrebbero ricominciare a tornare.
Per quanto semplicistica e ingenua questa soluzione possa essere, gli sviluppatori di non l’hanno prevista (non so se volontariamente o meno), quindi ho pensato fosse una cosa sensata porre un rimedio, per quanto rudimentale.
Al momento non sono presenti riferimenti esterni per questo articolo.
By Andrea Gandino — XHTML + CSS.
Non sono ancora presenti commenti per questo articolo. Vuoi essere il primo/a? Compila il form qui sotto!