WordPress: selezionare solo il formato standard dei post nel Loop

WordPress: selezionare solo il formato standard dei post nel Loop

Quando usiamo vari formati di post in WordPress può essere utile escludere dei formati specifici e reperire solo i post del formato standard. Vediamo come fare.

Aggiungete il seguente codice al file functions.php:


function my_query_format_standard($query) {
	if (isset($query->query_vars['post_format']) &&
		$query->query_vars['post_format'] == 'post-format-standard') {
		if (($post_formats = get_theme_support('post-formats')) &&
			is_array($post_formats[0]) && count($post_formats[0])) {
			$terms = array();
			foreach ($post_formats[0] as $format) {
				$terms[] = 'post-format-'.$format;
			}
			$query->is_tax = null;
			unset($query->query_vars['post_format']);
			unset($query->query_vars['taxonomy']);
			unset($query->query_vars['term']);
			unset($query->query['post_format']);
			$query->set('tax_query', array(
				'relation' => 'AND',
				array(
					'taxonomy' => 'post_format',
					'terms' => $terms,
					'field' => 'slug',
					'operator' => 'NOT IN'
				)
			));
		}
	}
}
add_action('pre_get_posts', 'my_query_format_standard');

La funzione accede all'oggetto globale della query dei post di WordPress e la modifica in modo che i post restituiti nel Loop principale appartengano solo al formato standard dei post.

Torna su