Obtener título, URL y extracto de una página

31 jul 2012, 13:35:10
Vistas: 27.5K
Votos: 2

Tengo la siguiente configuración: la página principal está configurada como 'estática' y utiliza una plantilla de página del tema. En esta plantilla/página principal, necesito obtener el título de la página, URL y extracto de la página Acerca de.

Encontré este código que hace exactamente lo que necesito, pero me pregunto si hay un enfoque diferente, uno que no use el ID de la página sino el slug o título.

<?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>

Edición posterior: Basado en la respuesta proporcionada por peteroak, este es el código completo funcionando:

<?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' ) ) ); ?>">más +</a>
    </div>
1
Comentarios

Hola, encontré este código de tendencia suministrado arriba que es lo que estoy buscando, ¡pero no tengo idea de por qué el '<?php echo $page->post_excerpt; ?>' no funciona! ¿Puedes decirme qué me falta? ¡Gracias de antemano!

jhunlio jhunlio
12 jul 2013 11:47:13
Todas las respuestas a la pregunta 2
3

el codex tiene exactamente lo que necesitas: get_page_by_title()

Ejemplo

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

o

 $page = get_page_by_path( 'pagina-padre/sub-pagina' );
31 jul 2012 13:44:30
Comentarios

No sabía que existía esa función. Hice una función similar hace un tiempo. Supongo que ya no la necesito :)

Sisir Sisir
31 jul 2012 14:31:01

¡Gracias por la ayuda! Actualizaré mi publicación con el código completo que resuelve el problema.

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

Me alegra haber podido ayudar :)

pcarvalho pcarvalho
31 jul 2012 16:04:52
2

Usa la API pública en todas partes

Dentro del loop, puedes usar get_the_excerpt() (sin argumentos). Es mejor que $post/$page->excerpt, ya que también aplica los filtros y verifica si la página/entrada tiene contraseña.

31 jul 2012 13:51:41
Comentarios

No utilicé un bucle para esto, ¿realmente habría alguna diferencia en cuanto a rendimiento si uso un bucle con este código o no?

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

En este caso, tendrías que recrear toda la implementación interna de las funciones - mira el enlace en la respuesta ↑ arriba.

kaiser kaiser
31 jul 2012 15:46:12