WordPress: estrarre e raggruppare elementi HTML dai contenuti

WordPress: estrarre e raggruppare elementi HTML dai contenuti

Se i nostri post o pagine di WordPress contengono molte immagini nel loro contenuto, potremmo voler creare una sorta di galleria di tutte le immagini presenti da inserire prima o dopo il contenuto stesso. Possiamo quindi separare le immagini dal resto del contenuto e presentarle agli utenti.

Aggiungete il seguente codice al file functions.php:


function split_content_images($content) {
	$images_re = '/<img[^>]+./';
	$output = '';
	if(preg_match($images_re, $content) {
		$output = '<div class="content-images">' . "\n";
		preg_match_all('/(<img [^>]*>)/', $content,$matches,PREG_PATTERN_ORDER);
		
		for($i = 0; isset($matches[1]) && $i < count($matches[1]); $i++ ) {
			$output .= '<div class="content-image">' . $matches[1][$i] . '</div>' . "\n";
		}
		$output .= '</div>' . "\n";
		
	}
	
	return $output . $content;
}

add_filter('the_content', 'split_content_images');

Tenete presente che รจ possibile utilizzare lo stesso principio alla base di questa tecnica per separare anche altri elementi dal resto del contenuto (link, video eccetera).

Semplicemente basta modificate le due espressioni regolari usate per selezionare anche altri tipi di elementi. Per i link potete consultare questo articolo.

Torna su