Salta al contenuto

Andrea Gandino

Solo il blog di un altro web designer.



WordPress e la scarsa accessibilità dei sommari dinamici

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 &hellip;
        </a>
    </p>
<?php else: ?>
    <?php the_content('Continua &hellip;'); ?>
<?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.


Ulteriori dettagli sull'articolo

Categorie
Catalogato nelle seguenti categorie: accessibilità, wordpress
Tags (via Technorati)

Nessun commento a “WordPress e la scarsa accessibilità dei sommari dinamici”

Non sono ancora presenti commenti per questo articolo. Vuoi essere il primo/a? Compila il form qui sotto!

Lascia un commento

Riferimenti esterni

Al momento non sono presenti riferimenti esterni per questo articolo.


Fondo

By XHTML + CSS.