WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

it:Riferimento funzioni/get post ancestors

Descrizione

Recupera gli antenati del post basandosi sul suo ID.

Utilizzo

<?php get_post_ancestors$post ?>

Parametri

$post
(mixed) (richiesto) ID del post o oggetto Post.
Default: Nessuno

Valori restituiti

(array) 
Array contenente gli ID dei post antenati o vuoto se nessun antenato viene trovato. Il genitore diretto è restituito come primo valore dell'array. L'antenato con il livello più alto è restituito come ultimo valore dell'array.

Esempi

Ottenere lo slug delle pagine degli antenati

Questo esempio restituisce lo slug della pagina più alta nell'albero e lo usa come classe per il tag HTML body, così il genitore e tutti i figli avranno la stessa classe di stile.

Questo è un esempio per un tema figlio di Twenty Eleven da mettere nel file header.php

</head>

<?php
/* Ottiene lo slug della pagina da usare come classe di stile nel tag body */
$class = '';
/* è una pagina? */
if( is_page() ) { 
	global $post;
        /* Recupera l'array di antenati e genitori se esistono */
	$parents = get_post_ancestors( $post->ID );
        /* Recupera il page->ID di livello più alto */ 
	$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
	/* Recupera il genitore e imposta $class assegnandogli lo slug della pagina (post_name) */
        $parent = get_page( $id );
	$class = $parent->post_name;
}
?>

<body <?php body_class( $class ); ?>>

Ottenere i metadati degli antenati del post

Se non si vuole usare lo slug della pagina, si può usare un campo personalizzato, come 'body_class', sulla pagina di primo livello ed impostare la classe nei metadati del post.

</head>

<?php
$class = '';
if( is_page() ) {
	global $post;
	$parents = get_post_ancestors( $post->ID );
	$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
	$class = get_post_meta( $id, 'body_class', true );
}
?>

<body <?php body_class( $class ); ?>>

Recuperare le miniature degli antenati del post

Recupera la miniatura della pagina di più alto livello e la stampa

<?php
global $post;
$parents = get_post_ancestors( $post->ID );
/* Ottiene l'ID della pagina di più alto livello o quello della pagina corrente */
$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
if(has_post_thumbnail( $id )) {
	get_the_post_thumbnail( $id, 'thumbnail');
}
?>


Note

Log delle modifiche

Da: 2.5.0

File sorgente

get_post_ancestors() si trova in wp-includes/post.php.

Correlati

Si veda anche l'indice di Riferimento funzioni e l'indice di Tag dei template.