Ottenere l'URL della pagina blog impostata nelle Opzioni

28 apr 2012, 12:56:00
Visualizzazioni: 80.7K
Voti: 54

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?

0
Tutte le risposte alla domanda 5
0
94

Per ampliare la risposta di Sagive, dovresti avvolgere l'ID in get_permalink() per ottenere il link effettivo.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Il Nostro Blog</a>
28 apr 2012 19:19:44
0
49

A partire da WordPress 4.5 puoi utilizzare:

get_post_type_archive_link( 'post' );

Questo gestisce la logica per ottenere l'URL corretto indipendentemente dal fatto che gli articoli vengano mostrati nella homepage o in una pagina specifica.

3 apr 2017 06:09:59
0

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>';
}
2 mag 2016 13:51:37
0

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

28 apr 2012 14:46:34
1

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( '/' ) );
    }
}
7 giu 2016 12:26:05
Commenti

Non è necessario utilizzare esc_url per le funzioni get_permalink e home_url

Anatol Bivol Anatol Bivol
7 apr 2017 10:48:04