WordPress: usare la funzione get_post_meta()

WordPress: usare la funzione get_post_meta()

La funzione di WordPress get_post_meta() serve a reperire il valore di un custom field (campo personalizzato) associato ad un post o pagina. Come testimonia il suo nome, i campi personalizzati non sono altro che metadati associati ai post di WordPress. Vediamone l'uso.

La sintassi di base è la seguente:


$meta_value = get_post_meta($post_id, $key, $single);

$post_id è l'ID del post a cui è associato il custom field. All'interno del Loop possiamo utilizzare la funzione get_the_ID() per ottenere l'ID corrispondente, mentre al di fuori del Loop possiamo servirci di $post->ID.

$key è il nome del custom field, una stringa che non deve contenere né spazi e che non dovrebbe mai usare una combinazione di lettere maiuscole e minuscole. Gli underscore ed i trattini sono invece ammessi. Restituisce una stringa vuota se il custom field non ha un valore.

$single è un valore booleano che indica se il valore restituito dalla funzione debba essere una stringa (true) o un array (false). Nella stragrande maggioranza dei casi useremo una stringa.

Ecco un esempio pratico:


while(have_posts()) {
	the_post();
	$id = get_the_ID();
	$video = get_post_meta( $id, 'video', true );
	if($video != '') {
		// Il post ha l'URL di un video
	}
}

Possiamo anche creare un Loop personalizzato di tutti i post aventi un determinato custom field:


$args = array( 'meta_key' => 'evident', 'meta_value' => 'yes', 'posts_per_page' => - 1 );
$loop = new WP_Query( $args );
while($loop->have_posts()) {
	$loop->the_post();
}

Se avessimo usato get_post_meta() avremmo invece dovuto verificare che ciascun post avesse il custom field evident con il valore yes.

Torna su