Obtenir l'URL de la page de blog définie dans Options


Réponses:


71

Pour compléter la réponse de Sagive, vous devrez envelopper l'ID dans get_permalink () pour obtenir le lien réel.

<a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>">Our Blog</a>

25

À partir de WordPress 4.5, vous pouvez utiliser:

get_post_type_archive_link( 'post' );

Cela gère la logique d'obtention de l'URL correcte, que les messages soient affichés sur la page d'accueil ou sur une page spécifiée.


4

La meilleure façon de vérifier l’option avant de définir le permalien est la suivante:

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

Vous pouvez utiliser get_optionof page_for_postspour obtenir l'ID de page afin de l'affecter à une variable ou de lui donner un écho si vous le souhaitez.

<?php $postsPageId = get_option('page_for_posts'); ?>
<a href="index.php?p=<?php echo $postsPageId; ?>">Our Blog</a>

Pour plus d'informations sur la visite de defualt get_option: Référence de l'option


1

En accord avec Hugh Man, il est préférable de cocher cette option avant de faire écho au lien, mais il est possible de définir la page statique en tant que page de garde et de laisser la page des messages vide. Dans ce cas, le lien pointe simplement vers l'URL de la maison. Une meilleure approche consiste à fournir un repli sur la page d’archive des articles. Quelque chose comme ça:

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

Vous ne devez pas esc_urlles get_permalinket home_urlfonctions
Tolea Bivol
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.