Ho impostato il blog su una pagina diversa dalla home page.
Voglio avere un link da single.php a questa pagina del blog.
C'è qualche funzione che estrae l'URL per il blog?
Ho impostato il blog su una pagina diversa dalla home page.
Voglio avere un link da single.php a questa pagina del blog.
C'è qualche funzione che estrae l'URL per il blog?
Risposte:
Per costruire sulla risposta di Sagive, ti consigliamo di racchiudere l'ID in get_permalink () per ottenere il link effettivo.
<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>
A partire da WordPress 4.5 è possibile utilizzare:
get_post_type_archive_link( 'post' );
Questo gestisce la logica di ottenere l'URL corretto indipendentemente dal fatto che i post vengano visualizzati nella home page o in una pagina specificata.
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>';
}
È possibile utilizzare get_option
di page_for_posts
per ottenere l'ID pagina per assegnarlo a una variabile o per fare eco se lo si desidera.
<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Our Blog</a>
Per ulteriori informazioni sulla visita get_option predefinita: Opzione di riferimento
Concordo con Hugh Man che è meglio selezionare l'opzione prima di fare eco al collegamento, ma è possibile impostare la pagina statica come prima pagina e lasciare vuota la pagina dei post. In questo caso, il collegamento punterà semplicemente all'URL principale. Un approccio migliore è fornire un fallback alla pagina di archivio dei post. Qualcosa come questo:
function slug_all_posts_link() {
if ( 'page' == get_option( 'show_on_front' ) ) {
if ( get_option( 'page_for_posts' ) ) {
echo esc_url( get_permalink( get_option( 'page_for_posts' ) ) );
} else {
echo esc_url( home_url( '/?post_type=post' ) );
}
} else {
echo esc_url( home_url( '/' ) );
}
}
esc_url
le funzioniget_permalink
ehome_url