Ottieni l'URL della pagina del blog impostato in Opzioni


Risposte:


70

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>

25

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.


4

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>';
}

3

È possibile utilizzare get_optiondi page_for_postsper 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


1

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( '/' ) );
    }
}

Non è necessario per esc_urlle funzioni get_permalinkehome_url
Tolea Bivol
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.