Come ottenere l'ID del genitore di un post?
Ho un template che visualizza i post del blog (Pagina Blog), apro uno dei post che utilizza il template single.php. Ora come posso ottenere l'ID del suo genitore che è la (Pagina Blog)?
Devo specificare che voglio usare questo ID per ottenere il valore del meta box della pagina blog in single.php.
Lo stesso vale per un custom post type, ad esempio 'progetto', dove un page template elenca i post del progetto (Pagina Progetti) e single-project.php per il singolo post di progetto. In questo caso voglio ottenere l'ID della (Pagina Progetti) in single-project.php.
WordPress 5.7 introduce una nuova funzione helper per recuperare più facilmente l'ID del post genitore:
get_post_parent()
Questa può essere utilizzata anche in combinazione con has_post_parent()
, quindi potresti avere qualcosa di simile a:
<?php if ( has_post_parent() ) : ?>
<a href="<?php the_permalink( get_post_parent() ); ?>">
<?php
echo sprintf(
esc_html__( 'Torna alla pagina genitore: %s', 'text-domain' ),
get_the_title( get_post_parent() )
);
?>
</a>
<?php endif; ?>
Nota che queste funzioni accettano come parametro un "ID del post figlio", che per default è il post corrente.

Sono riuscito a ottenere l'ID della pagina del blog con get_option('page_for_posts') ma senza successo nel post type personalizzato poiché $post->post_parent restituisce 0.

$post->post_parent funziona per me. Stampa il tuo oggetto $post, poi vedrai che [post_parent] è presente.
