Ottenere il titolo, l'URL e l'excerpt di una pagina

31 lug 2012, 13:35:10
Visualizzazioni: 27.5K
Voti: 2

Ho la seguente configurazione: la front-page è impostata come 'statica' e utilizza un template di pagina del tema. Su questo template / front-page, ho bisogno di ottenere il titolo della pagina, l'URL e l'excerpt della pagina About.

Ho trovato questo codice che fa esattamente ciò di cui ho bisogno, ma mi chiedo se ci sia un approccio diverso, uno che non utilizzi l'ID della pagina ma lo slug o il titolo.

<?php
    // Ottieni i dati della pagina usando l'ID
    $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>

Modifica successiva: Basato sulla risposta fornita da peteroak, questo è il codice completo funzionante:

<?php
    // Ottieni la pagina tramite il titolo
    $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' ) ) ); ?>">altro +</a>
    </div>
1
Commenti

ciao, ho trovato questo codice di tendenza e quello sopra è ciò che sto cercando, ma non ho idea del perché '<?php echo $page->post_excerpt; ?>' non funzioni!! Puoi dirmi cosa mi manca? Grazie in anticipo

jhunlio jhunlio
12 lug 2013 11:47:13
Tutte le risposte alla domanda 2
3

il codex contiene esattamente ciò che ti serve: get_page_by_title()

Esempio

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

oppure

 $page = get_page_by_path( 'parent-page/sub-page' );
31 lug 2012 13:44:30
Commenti

Non sapevo che esistesse quella funzione. Avevo creato una funzione simile qualche tempo fa. Immagino che non mi serva più :)

Sisir Sisir
31 lug 2012 14:31:01

Grazie per l'aiuto! Aggiornerò il mio post con il codice completo che risolve il problema.

George Grigorita George Grigorita
31 lug 2012 15:37:46

felice di aver potuto aiutare :)

pcarvalho pcarvalho
31 lug 2012 16:04:52
2

Utilizza l'API pubblica ovunque

All'interno del loop, puoi utilizzare get_the_excerpt() (senza argomenti). È meglio di $post/$page->excerpt, poiché applica anche i filtri e verifica se la pagina/articolo è protetta da password.

31 lug 2012 13:51:41
Commenti

Non ho usato un ciclo per questo, avrebbe fatto qualche differenza reale - in termini di prestazioni - se usassi un ciclo con questo codice oppure no?

George Grigorita George Grigorita
31 lug 2012 15:44:04

In questo caso, dovresti ricreare tutta la logica interna delle funzioni - vedi il link nella risposta ↑ sopra.

kaiser kaiser
31 lug 2012 15:46:12