Post recenti su una pagina home statica

12 feb 2013, 11:41:49
Visualizzazioni: 23.6K
Voti: 1

Voglio una pagina home statica sul mio sito WordPress, l'ho già configurata e ho inserito un po' di contenuti, il prossimo passo è avere 5 post recenti sotto il contenuto. Come pagina normale non è un problema, ma non appena imposto la pagina come home statica, i post scompaiono.

Dopo ore di ricerca, sono consapevole che ho bisogno di 'loop multipli' nel mio template, ho trovato alcuni esempi e ho cercato di implementarli nel mio template senza successo. Penso di avere più o meno il codice per mostrare i post recenti, ma credo di avere problemi con il markup e i template tag per mostrare effettivamente i post.

Spero che non sia troppo complicato da capire, e apprezzo davvero qualsiasi aiuto, sono su questo problema da 2 giorni senza alcun progresso. Posso fornire qualsiasi codice necessario dai template o altro.

Il mio sito web - www.completemuscleandfitness.com

Ok, questo è quello che ho finora

<?php
// Argomenti per recuperare i 5 post più recenti
$args = array( 'numberposts' => '5' );
$recent_posts = wp_get_recent_posts( $args );

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

che mostra questo - www.completemuscleandfitness.com

Come posso farlo apparire bello come le altre pagine dei post?

4
Commenti

Se puoi fornire il codice, perché non lo fai?

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

Sto provando ma non sembra apparire, userò Pastebin. Questo è quello che ho finora - http://pastebin.com/Qq08Z3Fp

user27348 user27348
12 feb 2013 12:47:12

Ho già modificato la tua domanda ed è in attesa di revisione. Vedi Formattazione del Codice.

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

Scusa, probabilmente suono davvero stupido! Cosa significa peer review?

user27348 user27348
12 feb 2013 12:57:31
Tutte le risposte alla domanda 3
3

Prima di tutto, benvenuto!

Suppongo che tu stia utilizzando il file front-page.php per visualizzare la tua homepage.
Quello che devi fare è aggiungere il seguente codice nel tuo file front-page.php:

<h2>Post Recenti</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="Visualizza '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> ';
    }
?>
</ul>

Ulteriori informazioni su wp_get_recent_posts() sono disponibili qui.

Il tuo file template dovrebbe apparire simile al seguente:

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

Potresti provare a inserire questo codice all'interno di <div id="main"> appena prima del tag di chiusura </div>:

<div id="main">
    <div class="new_post">
        ...
    </div>
    <h2>Post Recenti</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="Visualizza '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> ';
        }
    ?>
    </ul>                               
</div>
12 feb 2013 11:59:12
Commenti

Grazie per la risposta! Dato che ho una pagina home statica, al momento uso un template chiamato page-home-2.php. Posso inserire il codice lì dentro? La parte difficile per me è capire dove inserire il codice nel template?

user27348 user27348
12 feb 2013 12:10:32

Puoi aggiungere il codice in page-home-2.php. Modificherò la mia risposta aggiungendo una breve descrizione su dove posizionare questo codice.

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

Mike, potresti aiutarmi ulteriormente?

user27348 user27348
12 feb 2013 16:53:54
20

Puoi creare il tuo template personalizzato per la homepage nello stesso modo di index.php nella directory del tuo tema attivo.

All'interno di quel file puoi creare una tua query personalizzata e iterare attraverso i risultati.

Esempio:

<h2>Post Recenti</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>

Questo puoi considerarlo come un'implementazione di esempio. Puoi svilupparlo ulteriormente secondo le tue necessità.

Esempio:

<?php 

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

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

/* Ripristina i dati originali del Post 
 * NB: Poiché stiamo usando new WP_Query non stiamo sovrascrivendo 
 * l'originale $wp_query e non è necessario resettarlo.
*/
wp_reset_postdata();


/* La 2a Query (senza variabile globale) */
$query2 = new WP_Query( $args2 );

// Il 2° Loop
while( $query2->have_posts() ):
    $query2->next_post();
    echo '<li>' . get_the_title( $query2->post->ID ) . '</li>';
endwhile;

// Ripristina i dati originali del Post
wp_reset_postdata();

?>

Puoi ottenere maggiori informazioni qui. E per i parametri multipli della query, consulta questo.

12 feb 2013 12:12:52
Commenti

Grazie per il tuo aiuto, ho appena inserito il primo codice nel mio index.php per creare un template personalizzato. Ora vedo i post recenti ma senza link e sono solo una piccola lista sopra il mio contenuto. Come posso fare in modo che i post vengano visualizzati come nelle altre pagine del blog come questa - http://completemuscleandfitness.com/index.php/training/

user27348 user27348
12 feb 2013 12:31:37

Questo dipende totalmente dalla struttura DOM del tuo tema attuale. Cioè, da come è scritta la logica di presentazione attraverso PHP e HTML. Ad esempio, puoi semplicemente copiare e incollare l'intera logica di visualizzazione dei post nel tuo loop personalizzato invece dell'istruzione echo '<li>' . get_the_title() . '</li>'; e rimuovere il wrapping ul attorno a essa. Spero che questo ti aiuti.

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

Sto ricevendo molti input, lo apprezzo davvero. Credo di capire più o meno quello che stai dicendo. Penso che questo sia fondamentalmente il punto in cui mi blocco. In passato sono riuscito a far vedere i post recenti, ma non riesco a capire come farli visualizzare correttamente. Semplicemente non riesco a farmi un'idea chiara. Se postassi un altro template di blog del tema, qualcuno potrebbe aiutarmi partendo da quello?

user27348 user27348
12 feb 2013 12:51:37

Non riesco a capire cosa stai cercando di dire. Puoi approfondire ulteriormente?

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

Ok, riesco a far visualizzare i post recenti sulla mia pagina statica, ma hanno un aspetto disordinato. Probabilmente c'è del codice che devo inserire nella mia pagina personalizzata affinché i post vengano visualizzati nel formato normale del tema. Semplicemente non ho idea di quale codice inserire e dove, questo codice probabilmente potrebbe provenire da un altro template del tema? Sto chiedendo se, posto un template del tema, puoi aiutarmi a posizionare il codice dove serve?

user27348 user27348
12 feb 2013 13:04:03

Certo! Vai avanti amico.

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

Grazie! Per prima cosa questo è quello che ho finora nel mio template personalizzato, mostra i post ma senza formattazione - http://pastebin.com/Qq08Z3Fp Il seguente è il template del blog dal mio tema - http://pastebin.com/uJyfbEeg

user27348 user27348
12 feb 2013 13:08:48

Ho modificato il codice ed ecco il link http://pastebin.com/ubhyxpJV. Fai semplicemente un backup del tuo file template esistente e incolla tutto questo codice e penso che tu sia a posto.

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

Grazie per i tuoi sforzi Rohit, ho incollato il codice nel mio template personalizzato e l'ho attivato ma i post recenti non compaiono nella mia homepage?

user27348 user27348
12 feb 2013 13:19:04

Ho apportato alcune modifiche. Guarda qui http://pastebin.com/QrcBXW0N. Prova a sostituire questo codice con quello esistente e verifica.

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

Stiamo facendo progressi! Ora mostra i post recenti quasi come dovrebbero essere, ma li ripete in loop quindi ci sono 3 post continuamente. Inoltre, il contenuto originale della mia pagina è scomparso. Ancora una volta, non so come dirti quanto apprezzo il tuo aiuto.

user27348 user27348
12 feb 2013 13:28:04

Esamina i vari parametri della query e penso che sarai in grado di sistemare. Puoi consultare i parametri qui. Prova a cambiare i parametri in modo da ottenere il numero richiesto di post in base ai tuoi criteri.

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

Ok grazie, proverò. Un'ultima cosa, hai qualche idea su come posso far tornare visibile il resto dei contenuti? Ora i post occupano tutto lo spazio

user27348 user27348
12 feb 2013 13:37:49

Sì certo. Aggiungi semplicemente questa riga <?php get_template_part('home'); ?> dopo <?php /* Template Name: Custom Homepage */ ?> e dovrebbe funzionare probabilmente. Prova e se non funziona, per favore indicami il codice del tuo file home.php nella directory del tema attivo. Verifica se il file è presente. Se non c'è, prova a capire quale template viene caricato per la riga di codice che ti ho suggerito.

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

ok ora si vede ma come una pagina separata, abbastanza strano - www.completemuscleandfitness.com Ecco il codice del template - http://pastebin.com/3xDU9w3R e questo è il mio home.php - http://pastebin.com/XELee582

user27348 user27348
12 feb 2013 13:52:11

Come nel passaggio precedente, fai un backup del file e prova a sostituire il codice con questo e poi prova.

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

come prima ma i meta del footer sono scomparsi. Scusa se sono un problema...

user27348 user27348
12 feb 2013 14:01:06

Stai avendo qualche problema nella struttura del DOM. Io riesco a vedere la parte del footer. Controlla semplicemente la corretta struttura del DOM e penso che questo risolverà il problema.

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

Sono inutile, non so nemmeno come controllare la struttura del DOM...

user27348 user27348
12 feb 2013 14:14:26

Sei riuscito a risolvere qualcosa? Hai modificato la pagina come desiderato? Sentiti libero di chiedere se hai bisogno di aiuto.

Rohit Pande Rohit Pande
13 feb 2013 08:29:35
Mostra i restanti 15 commenti
0

A meno che non mi stia sfuggendo qualcosa, penso che stiate lavorando troppo duramente.

A mio avviso, il widget "articoli recenti" dovrebbe essere tutto ciò di cui avete bisogno.

Esempio:

http://wordpresstest.hjcs.org

La sezione "Notizie recenti" è proprio il widget "articoli recenti".

(Questo sito è ancora in costruzione - ecco perché ho "test" nel sottodominio.)

12 feb 2013 19:14:54