web-dev-qa-db-fra.com

obtenir le titre de la page, l'url et l'extrait d'une page

J'ai la configuration suivante: la page de garde est configurée en "statique" et utilise un modèle de page de thème. Sur ce modèle/page de garde, je dois obtenir le titre de la page, l’URL et l’extrait de la page À propos de.

J'ai trouvé ce code qui fait exactement ce dont j'ai besoin, mais je me demande s'il existe une approche différente, qui n'utiliserait pas l'ID de la page, mais le slug ou le titre de la page.

<?php
    $page_id = 13;
    $page_data = get_page( $page_id );
    $the_excerpt = $page_data->post_excerpt;
    $title = $page_data->post_title;
?>
<a href="<?php echo get_permalink(13); ?>">
    <?php echo $page_data->post_title; ?>
</a>

Édition ultérieure: D'après la réponse fournie par peteroak, il s'agit du code de travail complet:

<?php
    $page = get_page_by_title( 'About' );
    $the_excerpt = $page->post_excerpt;
    $page_data = get_page( $page );
    $title = $page_data->post_title;
?>
<header class="entry-header">
    <h1 class="entry-title">
        <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'About' ) ) ); ?>">
            <?php echo $page_data->post_title; ?>
        </a>
    </h1>
</header>   
    <div class="entry-content"><?php echo $page->post_excerpt; ?>
        <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'About' ) ) ); ?>">more +</a>
    </div>
2
George Grigorita

le codex a exactement ce dont vous avez besoin: get_page_by_title()

Exemple

 $page = get_page_by_title( 'About' );
 $the_excerpt = $page->post_excerpt;

ou

 $page = get_page_by_path( 'parent-page/sub-page' );
6
pcarvalho

Utiliser l'API publique partout

Dans la boucle, vous pouvez utiliser get_the_excerpt() (sans argument). C'est mieux que $post/$page->excerpt, car il attache également les filtres et vérifie si la page/publication a un mot de passe.

1
kaiser