Entradas recientes en una página de inicio estática

12 feb 2013, 11:41:49
Vistas: 23.6K
Votos: 1

Quiero una página de inicio estática en mi sitio web de WordPress, ya la he configurado y tengo algo de contenido en ella. El siguiente paso es que quiero tener 5 entradas recientes debajo del contenido. En una página normal esto no es problema, pero tan pronto como configuro la página como página de inicio estática, las entradas desaparecen.

Después de horas de búsqueda, sé que necesito 'múltiples loops' en mi plantilla. He encontrado algunos ejemplos y he tratado de implementarlos en mi plantilla sin éxito. Creo que tengo más o menos el código para mostrar las entradas recientes, pero creo que estoy teniendo problemas con el marcado y las etiquetas de plantilla para mostrar realmente las entradas.

Espero que esto no sea demasiado complicado de entender, y realmente agradezco cualquier ayuda. He estado en esto durante 2 días sin ningún progreso. Puedo proporcionar cualquier código necesario de las plantillas o cualquier otra cosa.

Mi sitio web - www.completemuscleandfitness.com

Ok, esto es lo que tengo hasta ahora

<?php
// Array de argumentos para obtener 5 entradas recientes
$args = array( 'numberposts' => '5' );
$recent_posts = wp_get_recent_posts( $args );

foreach( $recent_posts as $recent ){
echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="Ver '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> ';
}       

que muestra esto - www.completemuscleandfitness.com

¿Cómo puedo hacer que se vea bien como las otras páginas de entradas?

4
Comentarios

Si puedes proporcionar el código, ¿por qué no lo haces?

Max Yudin Max Yudin
12 feb 2013 11:54:39

Estoy intentándolo pero parece que no se muestra, usaré Paste Bin. Esto es lo que tengo hasta ahora - http://pastebin.com/Qq08Z3Fp

user27348 user27348
12 feb 2013 12:47:12

Ya he editado tu pregunta y está esperando revisión. Mira Formateo de Código.

Max Yudin Max Yudin
12 feb 2013 12:51:03

Lo siento, probablemente sueno muy tonto. ¿Qué es la revisión por pares?

user27348 user27348
12 feb 2013 12:57:31
Todas las respuestas a la pregunta 3
3

¡Primero, bienvenido!

Supongo que usas el archivo front-page.php para mostrar tu página de inicio.
Lo que tienes que hacer es agregar el siguiente código en tu front-page.php:

<h2>Publicaciones Recientes</h2>
<ul>
<?php
    $args = array( 'numberposts' => '5' );
    $recent_posts = wp_get_recent_posts( $args );

    foreach( $recent_posts as $recent ){
        echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="Ver '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> ';
    }
?>
</ul>

Más información sobre wp_get_recent_posts() puede encontrarse aquí.

Tu archivo de plantilla se verá algo así:

<div id="main">
    <div class="new_post">
        ...
    </div>                                  
</div>

Podrías intentar poner este código dentro de <div id="main"> justo antes de la etiqueta de cierre </div>:

<div id="main">
    <div class="new_post">
        ...
    </div>
    <h2>Publicaciones Recientes</h2>
    <ul>
    <?php
        $args = array( 'numberposts' => '5' );
        $recent_posts = wp_get_recent_posts( $args );

        foreach( $recent_posts as $recent ){
            echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="Ver '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> ';
        }
    ?>
    </ul>                               
</div>
12 feb 2013 11:59:12
Comentarios

¡Gracias por tu respuesta! Como tengo una página de inicio estática, actualmente uso una plantilla llamada page-home-2.php ¿Puedo poner el código ahí? La parte difícil para mí es saber dónde insertar el código en la plantilla.

user27348 user27348
12 feb 2013 12:10:32

Puedes agregar el código en page-home-2.php. Editaré mi respuesta para agregarte una breve descripción sobre dónde colocar este código.

Mike Madern Mike Madern
12 feb 2013 12:16:03

Mike, ¿podrías ayudarme un poco más?

user27348 user27348
12 feb 2013 16:53:54
20

Puedes crear tu propia plantilla de página de inicio personalizada al igual que el archivo index.php en el directorio de tu tema activo.

Dentro de ese archivo puedes crear tu propia consulta personalizada e iterar a través de los resultados.

Ejemplo:

<h2>Publicaciones Recientes</h2>
<ul>
<?php
    $query = new WP_Query( array ( 'orderby' => 'date', 'order' => 'DESC' ) );

    while ( $query->have_posts() ) :
    $query->the_post();
    echo '<li>' . get_the_title() . '</li>';
endwhile;
?>
</ul>

Esto puedes considerarlo como una implementación de ejemplo. Puedes llevarlo más allá según sea necesario.

Ejemplo:

    <?php 

// La Consulta
$the_query = new WP_Query( $args );

// El Bucle
while ( $the_query->have_posts() ) :
    $the_query->the_post();
    echo '<li>' . get_the_title() . '</li>';
endwhile;

/* Restaurar los datos originales del Post 
 * Nota: Debido a que estamos usando new WP_Query, no estamos pisando 
 * la $wp_query original y no necesita ser restablecida.
*/
wp_reset_postdata();


/* La 2da Consulta (sin variable global) */
$query2 = new WP_Query( $args2 );

// El 2do Bucle
while( $query2->have_posts() ):
    $query2->next_post();
    echo '<li>' . get_the_title( $query2->post->ID ) . '</li>';
endwhile;

// Restaurar los datos originales del Post
wp_reset_postdata();

 ?>

Puedes obtener más información aquí. Y para múltiples parámetros de la consulta, consulta esto.

12 feb 2013 12:12:52
Comentarios

Gracias por tu ayuda, acabo de insertar el primer código en mi index.php para crear una plantilla personalizada. Ahora tengo las publicaciones recientes mostrándose pero sin enlaces y son solo una pequeña lista sobre mi contenido. ¿Cómo puedo hacer que las publicaciones se muestren como lo hacen en otras páginas de blog como esta - http://completemuscleandfitness.com/index.php/training/

user27348 user27348
12 feb 2013 12:31:37

Eso depende totalmente de la estructura DOM de tu tema actual. Es decir, cómo está escrita la lógica de presentación a través de PHP y HTML. Por ejemplo, puedes copiar y pegar toda la lógica de visualización de publicaciones en tu bucle personalizado en lugar de la declaración echo '<li>' . get_the_title() . '</li>'; y eliminar el ul que lo envuelve. Espero que eso ayude.

Rohit Pande Rohit Pande
12 feb 2013 12:40:09

Estoy recibiendo mucha información, realmente lo aprecio. Creo que entiendo más o menos lo que dices. Pienso que aquí es donde finalmente me topo con un muro. He tenido las publicaciones recientes mostrándose antes pero no logro entender cómo se muestran correctamente. Simplemente no logro comprenderlo. ¿Si publico otra plantilla de blog del tema, alguien podría ayudarme con eso?

user27348 user27348
12 feb 2013 12:51:37

No logro entender lo que intentas decir. ¿Podrías explicarlo con más detalle?

Rohit Pande Rohit Pande
12 feb 2013 12:57:08

Ok, puedo hacer que las publicaciones recientes aparezcan en mi página estática, pero se ven desordenadas. Probablemente necesito insertar algún código en mi página personalizada para que las publicaciones se muestren en el formato normal del tema. Simplemente no tengo idea de qué código poner ni dónde. Este código probablemente podría venir de otra plantilla del tema. ¿Estoy preguntando si al publicar una plantilla del tema, puedes ayudarme a colocar el código donde debe ir?

user27348 user27348
12 feb 2013 13:04:03

¡Claro que sí! Adelante, amigo.

Rohit Pande Rohit Pande
12 feb 2013 13:05:12

¡Gracias! Primero, esto es lo que tengo hasta ahora en mi plantilla personalizada, esto muestra publicaciones pero sin formato - http://pastebin.com/Qq08Z3Fp Lo siguiente es la plantilla del blog de mi tema - http://pastebin.com/uJyfbEeg

user27348 user27348
12 feb 2013 13:08:48

He modificado el código y aquí está el enlace http://pastebin.com/ubhyxpJV. Simplemente haz una copia de seguridad de tu archivo de plantilla existente y pega todo este código, creo que estarás listo para continuar.

Rohit Pande Rohit Pande
12 feb 2013 13:15:23

Gracias por tus esfuerzos Rohit, he pegado el código en mi plantilla personalizada y lo he activado, pero las publicaciones recientes no aparecen en mi página de inicio.

user27348 user27348
12 feb 2013 13:19:04

He realizado algunas ediciones. Mira esto http://pastebin.com/QrcBXW0N. Intenta reemplazar este código con el existente y pruébalo.

Rohit Pande Rohit Pande
12 feb 2013 13:22:56

¡Vamos avanzando! Ahora muestra las publicaciones recientes casi como deberían verse, pero las repite de modo que hay 3 publicaciones continuamente. Además, el contenido original de mi página ha desaparecido. Nuevamente, no puedo expresar cuánto agradezco tu ayuda.

user27348 user27348
12 feb 2013 13:28:04

Revisa los diversos parámetros de la consulta y creo que podrás lograrlo. Puedes consultar los parámetros aquí. Intenta cambiar los parámetros para obtener el número requerido de publicaciones según tus criterios.

Rohit Pande Rohit Pande
12 feb 2013 13:35:30

Ok, gracias, voy a intentarlo. Una última cosa, ¿alguna idea sobre cómo puedo hacer que se muestre nuevamente el otro contenido? Los posts ahora ocupan todo el contenido

user27348 user27348
12 feb 2013 13:37:49

Sí, claro. Solo agrega esta línea <?php get_template_part('home'); ?> después de <?php /* Template Name: Página de inicio personalizada */ ?> y debería funcionar probablemente. Pruébalo y si no funciona, por favor indícame el código de tu archivo home.php en el directorio del tema activo. Verifica si el archivo está presente. Si no, intenta averiguar qué plantilla se está cargando para la línea de código que he sugerido.

Rohit Pande Rohit Pande
12 feb 2013 13:42:11

Ok, ahora se muestra pero como una página separada, algo extraño - www.completemuscleandfitness.com Aquí está el código de la plantilla - http://pastebin.com/3xDU9w3R y aquí está mi home.php - http://pastebin.com/XELee582

user27348 user27348
12 feb 2013 13:52:11

Igual que en el paso anterior, haz una copia de seguridad del archivo e intenta reemplazar el código con este y luego prueba.

Rohit Pande Rohit Pande
12 feb 2013 13:58:09

Lo mismo que antes pero los metadatos del footer han desaparecido. Siento ser tan pesado...

user27348 user27348
12 feb 2013 14:01:06

Tienes algún problema con la estructura DOM. Yo puedo ver la parte del footer. Solo revisa la estructura DOM correctamente y creo que eso resolverá el problema.

Rohit Pande Rohit Pande
12 feb 2013 14:04:57

Soy inútil, ni siquiera sé cómo revisar la estructura del DOM...

user27348 user27348
12 feb 2013 14:14:26

¿Pudiste resolver algo? ¿Has modificado la página como deseabas? No dudes en pedir ayuda si la necesitas.

Rohit Pande Rohit Pande
13 feb 2013 08:29:35
Mostrar los 15 comentarios restantes
0

A menos que me esté perdiendo algo, creo que todos están trabajando demasiado duro.

Me parece que el widget de "publicaciones recientes" debería ser todo lo que necesitan.

Ejemplo:

http://wordpresstest.hjcs.org

La sección "Noticias Recientes" es el widget de "publicaciones recientes".

(Este sitio aún está en construcción, por eso tengo "test" en el subdominio).

12 feb 2013 19:14:54