Articole recente pe o pagină statică de start

12 feb. 2013, 11:41:49
Vizualizări: 23.6K
Voturi: 1

Doresc să am o pagină statică de start pe site-ul meu WordPress. Am configurat deja acest lucru și am adăugat un pic de conținut, iar următorul pas este să afișez 5 articole recente sub conținut. Ca pagină normală acest lucru nu este o problemă, dar imediat ce setez pagina ca pagină statică de start, articolele dispar.

După ore întregi de căutare, am aflat că am nevoie de 'bucle multiple' în șablonul meu. Am găsit câteva exemple și am încercat să le implementez în șablonul meu fără succes. Cred că am codul pentru a aduce articolele recente, dar cred că am probleme cu marcajul și etichetele de șablon pentru a afișa efectiv articolele.

Sper că nu este prea complicat de înțeles și apreciez foarte mult orice ajutor. Am lucrat la acest aspect timp de 2 zile fără niciun progres. Pot furniza orice cod necesar din șabloane sau orice altceva.

Site-ul meu - www.completemuscleandfitness.com

Ok, iată ce am până acum

<?php
// Argumentele pentru a obține 5 articole recente
$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="Vezi '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> ';
}       

care arată așa - www.completemuscleandfitness.com

Cum pot face să arate frumos ca celelalte pagini cu articole?

4
Comentarii

Dacă poți furniza codul, de ce nu faci asta?

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

Încerc, dar nu pare să se afișeze, voi folosi paste bin. Iată ce am până acum - http://pastebin.com/Qq08Z3Fp

user27348 user27348
12 feb. 2013 12:47:12

Am editat deja întrebarea ta și așteaptă revizuire. Vezi Formatarea Codului.

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

Scuze, probabil sun foarte prostesc! Ce este evaluarea colegială (peer review)?

user27348 user27348
12 feb. 2013 12:57:31
Toate răspunsurile la întrebare 3
3

În primul rând, Bine ai venit!

Presupun că folosești fișierul front-page.php pentru a afișa pagina ta principală.
Ce trebuie să faci, este să adaugi următorul cod în fișierul tău front-page.php:

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

Mai multe informații despre wp_get_recent_posts() le găsești aici.

Fișierul tău de template va arăta cam așa:

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

Poți încerca să pui acest cod în <div id="main"> chiar înainte de tag-ul de închidere </div>:

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

Mulțumesc pentru răspuns! Deoarece am o pagină de start statică, folosesc în prezent un șablon numit page-home-2.php. Pot să introduc codul acolo? Partea dificilă pentru mine este să știu unde să introduc codul în șablon?

user27348 user27348
12 feb. 2013 12:10:32

Poți adăuga codul în page-home-2.php. Voi edita răspunsul meu pentru tine adăugând o scurtă descriere unde să plasezi acest cod.

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

Mike, ai putea să mă ajuți mai departe?

user27348 user27348
12 feb. 2013 16:53:54
20

Puteți crea propria șablon personalizat pentru pagina de start, la fel ca index.php în directorul temei active.

În acel fișier puteți crea propria interogare personalizată și puteți parcurge rezultatele.

Ex.

<h2>Postări recente</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>

Aceasta poate fi considerată o implementare de bază. Puteți merge mai departe după necesități.

Ex.

    <?php 

// Interogarea
$the_query = new WP_Query( $args );

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

/* Restabilirea datelor originale Post 
 * NB: Deoarece folosim new WP_Query, nu interferăm cu 
 * $wp_query original și nu este nevoie să fie resetat.
*/
wp_reset_postdata();


/* A doua interogare (fără variabilă globală) */
$query2 = new WP_Query( $args2 );

// A doua buclă
while( $query2->have_posts() ):
    $query2->next_post();
    echo '<li>' . get_the_title( $query2->post->ID ) . '</li>';
endwhile;

// Restabilirea datelor originale Post
wp_reset_postdata();

 ?>

Puteți obține mai multe informații aici. Iar pentru parametri multipli ai interogării, consultați acest link.

12 feb. 2013 12:12:52
Comentarii

Mulțumesc pentru ajutor, tocmai am inserat primul cod în index.php pentru a crea un șablon personalizat. Acum afișez postări recente, dar fără link-uri și sunt doar o mică listă deasupra conținutului meu. Cum pot face ca postările să fie afișate ca pe alte pagini de blog, precum aceasta - http://completemuscleandfitness.com/index.php/training/

user27348 user27348
12 feb. 2013 12:31:37

Aceasta depinde în totalitate de structura DOM a temei tale curente. Adică, de modul în care logica de prezentare este scrisă prin PHP și HTML. De exemplu, poți copia și lipi întreaga logică de afișare a postărilor în bucla ta personalizată, în loc de instrucțiunea echo '<li>' . get_the_title() . '</li>'; și poți elimina înfășurătoarea ul pentru aceasta. Sper că acest lucru te ajută.

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

Primesc multe sugestii, apreciez foarte mult. Cred că înțeleg parțial ce spui. Cred că aici am ajuns la un punct mort. Am avut deja postări recente afișate, dar nu reușesc să înțeleg cum să le afișez corect. Pur și simplu nu-mi pot da seama. Dacă aș posta un alt șablon de blog din tema, mă poate ajuta cineva pe baza acestuia?

user27348 user27348
12 feb. 2013 12:51:37

Nu înțeleg ce încerci să spui. Poți să explici mai detaliat, te rog?

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

ok, pot afișa postările recente pe pagina mea statică, dar arată haotic. Probabil trebuie să inserez niște cod în pagina mea personalizată pentru ca postările să apară în formatul normal al temei. Doar că nu am idee ce cod să pun și unde, acest cod probabil ar putea veni de la un alt șablon al temei? Întreb dacă pot posta un șablon al temei, poți să mă ajuți să pun codul unde trebuie?

user27348 user27348
12 feb. 2013 13:04:03

Desigur! Dă-i drumul, amice.

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

Mulțumesc! În primul rând, acesta este codul pe care îl am până acum în șablonul meu personalizat, acesta afișează postări dar fără formatare - http://pastebin.com/Qq08Z3Fp Următorul este șablonul blogului din tema mea - http://pastebin.com/uJyfbEeg

user27348 user27348
12 feb. 2013 13:08:48

Am modificat codul și iată linkul http://pastebin.com/ubhyxpJV. Doar fă o copie de rezervă a fișierului șablon existent și lipește acest cod integral și cred că ești gata de utilizare.

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

Mulțumesc pentru eforturile tale, Rohit, am lipit codul în șablonul meu personalizat și l-am activat, dar postările recente nu apar pe pagina mea principală?

user27348 user27348
12 feb. 2013 13:19:04

Am făcut câteva modificări. Vezi aici http://pastebin.com/QrcBXW0N. Încearcă să înlocuiești acest cod cu cel existent și testează.

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

Ne apropiem de soluție! Acum afișează postările recente aproape cum ar trebui, dar le repetă astfel încât apar 3 postări continuu. De asemenea, conținutul original al paginii a dispărut. Din nou, nu-ți pot spune cât de mult apreciez ajutorul tău.

user27348 user27348
12 feb. 2013 13:28:04

Parcurge diferiți parametri ai interogării și cred că vei reuși să o configurezi. Poți consulta parametrii aici. Încearcă să modifici parametrii pentru a obține numărul necesar de postări conform criteriilor tale.

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

Ok, mulțumesc, voi încerca. Un ultim lucru, ai vreo idee cum pot afișa din nou celelalte conținuturi? Postările acum acaparează tot conținutul

user27348 user27348
12 feb. 2013 13:37:49

Da, sigur. Doar adaugă această linie <?php get_template_part('home'); ?> după <?php /* Template Name: Custom Homepage */ ?> și ar trebui să funcționeze. Încearcă și dacă nu funcționează, te rog să-mi arăți codul din fișierul tău home.php din directorul temei active. Verifică dacă fișierul există. Dacă nu, încearcă să afli care șablon este încărcat pentru linia de cod pe care ți-am sugerat-o.

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

ok, acum apare, dar ca o pagină separată, destul de ciudat - www.completemuscleandfitness.com Iată codul șablonului - http://pastebin.com/3xDU9w3R și iată home.php-ul meu - http://pastebin.com/XELee582

user27348 user27348
12 feb. 2013 13:52:11

La fel ca în pasul anterior, fă o copie de rezervă a fișierului și încearcă să înlocuiești codul cu acesta, apoi testează.

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

la fel ca înainte, dar meta-informațiile din footer au dispărut. Îmi pare rău că sunt atât de dificil...

user27348 user27348
12 feb. 2013 14:01:06

Ai o problemă în structura DOM. Eu pot vedea partea de footer. Verifică structura corectă DOM și cred că asta va rezolva problema.

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

Sunt inutil, nici măcar nu știu cum să verific structura DOM...

user27348 user27348
12 feb. 2013 14:14:26

Ai reușit să rezolvi ceva? Ai modificat pagina așa cum doreai? Nu ezita să ceri ajutor dacă ai nevoie.

Rohit Pande Rohit Pande
13 feb. 2013 08:29:35
Arată celelalte 15 comentarii
0

Dacă nu greșesc, cred că lucrați mult prea din greu.

Mi se pare că widget-ul "postări recente" ar trebui să fie tot ce aveți nevoie.

Exemplu:

http://wordpresstest.hjcs.org

"Știri recente" este widget-ul "postări recente".

(Acest site este încă în construcție - de aceea am "test" în subdomeniu.)

12 feb. 2013 19:14:54