WordPress: gestire le immagini prive dell'attributo alt

WordPress: gestire le immagini prive dell'attributo alt

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));
Torna su