Ottenere l'URL della pagina blog impostata nelle Opzioni
Ho impostato il blog su una pagina diversa dalla homepage.
Voglio avere un link da single.php a questa pagina del blog.
Esiste una funzione che recupera l'URL del blog?

Il modo migliore per verificare l'opzione prima di impostare il permalink è il seguente:
if ( get_option( 'page_for_posts' ) ) {
echo '<a href="'.esc_url(get_permalink( get_option( 'page_for_posts' ) )).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
} else {
echo '<a href="'.esc_url( home_url( '/' ) ).'">'.esc_html__( 'Blog', 'textdomain' ).'</a>';
}

Puoi utilizzare get_option
con page_for_posts
per ottenere l'ID della pagina, sia per assegnarlo a una variabile sia per visualizzarlo se lo desideri.
<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Il Nostro Blog</a>
Per ulteriori informazioni sulla funzione predefinita get_option visita: Riferimento alle Opzioni

Concordo con Hugh Man che è meglio verificare l'opzione prima di visualizzare il link, ma è possibile impostare una pagina statica come pagina iniziale e lasciare vuota la pagina degli articoli. In questo caso, il link punterà semplicemente all'URL della home. Un approccio migliore è fornire un fallback alla pagina di archivio degli articoli. Qualcosa come questo:
function slug_all_posts_link() {
// Verifica se l'opzione 'show_on_front' è impostata su 'page'
if ( 'page' == get_option( 'show_on_front' ) ) {
// Se è impostata una pagina per gli articoli
if ( get_option( 'page_for_posts' ) ) {
// Mostra il permalink della pagina degli articoli
echo esc_url( get_permalink( get_option( 'page_for_posts' ) ) );
} else {
// Altrimenti mostra l'URL della home con il tipo di post
echo esc_url( home_url( '/?post_type=post' ) );
}
} else {
// Se non è una pagina statica, mostra semplicemente l'URL della home
echo esc_url( home_url( '/' ) );
}
}
