La validazione HTML di un sito in WordPress è sempre sospesa sul filo di un rasoio. Basta poco perchè una pagina che prima superava la validazione ora non la superi più per un piccolo errore nella marcatura. Uno di questi errori è la mancanza di un attributo alt
per le immagini. Questo tipo di errore è molto comune quando ad inserire i contenuti non siamo noi. Vediamo come risolvere questo problema.
Il seguente filtro sul contenuto sostituisce i tag img
privi di un attributo alt
con una versione corretta in cui tale attributo è impostato sul titolo del post corrente. Inseritelo nel file functions.php
:
function add_alt_attrs($content) {
global $post;
preg_match_all('/<img (.*?)\/>/', $content, $images);
$id = $post->ID;
if(!is_null($images)) {
foreach($images[1] as $index => $value) {
if(!preg_match('/alt=/', $value)) {
$new_img = str_replace('<img', '<img alt="'.get_the_title($id).'"', $images[0][$index]);
$content = str_replace($images[0][$index], $new_img, $content);
}
}
}
return $content;
}
add_filter('the_content', 'add_alt_attrs', 99999);
Nota sulle immagini in evidenza
Per le immagini in evidenza è sufficiente specificare l'attributo alt
utilizzando i parametri delle funzioni usate:
$id = get_the_ID();
$title = get_the_title($id);
echo get_the_post_thumbnail($id, array(150,150), array('alt'=> $title));