Mulți dintre cititorii noștri începători încep curând să-și modifice temele WordPress, de aceea avem o fișă de referință pentru temele WordPress pentru a-i ajuta să înceapă. Acest lucru aduce provocări interesante pentru utilizatorii noi. Un astfel de cititor ne-a întrebat recent cum să afișeze postările de săptămâna trecută în WordPress. Ei doreau doar să adauge o secțiune pe pagina lor de pornire care să afișeze postări din săptămâna anterioară. În acest articol, vă vom arăta cum să afișați postările de săptămâna trecută în WordPress.
Înainte de a vă arăta cum să afișați postările din săptămâna precedentă, să aruncăm mai întâi o privire asupra modului în care puteți afișa postările din săptămâna curentă folosind WP_Query. Copiați și lipiți următorul cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului.
function wpb_this_week() {
$week = date('W');
$year = date('Y');
$the_query = new WP_Query( 'year=' . $year . '&w=' . $week );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;
}
În exemplul de cod de mai sus, am aflat mai întâi săptămâna și anul curent. Am folosit apoi acele valori în WP_Query pentru a afișa postări din săptămâna curentă. Acum tot ce trebuie să faceți este să adăugați <?php wpb_this_week(); ?> în fișierul temei dvs. acolo unde doriți să afișați postările.
A fost simplu, nu-i așa? Acum, pentru a afișa postările de săptămâna trecută, tot ce trebuie să faceți este să scădeți 1 din valoarea săptămânii. Dar dacă aceasta este prima săptămână a anului, atunci veți obține 0 pentru săptămână și anul curent în loc de anul trecut. Iată cum rezolvați această problemă.
function wpb_last_week_posts() {
$thisweek = date('W');
if ($thisweek != 1) :
$lastweek = $thisweek - 1;
else :
$lastweek = 52;
endif;
$year = date('Y');
if ($lastweek != 52) :
$year = date('Y');
else:
$year = date('Y') -1;
endif;
$the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;
}
În exemplul de cod de mai sus am plasat două verificări. Prima verificare setează valoarea săptămânii trecute la 52 (care este ultima săptămână dintr-un an) atunci când valoarea săptămânii curente este 1. A doua verificare setează valoarea anului la anul trecut atunci când valoarea ultimei săptămâni este 52.
Pentru a afișa postările de săptămâna trecută, tot ce trebuie să faceți este să adăugați <?php wpb_last_week_posts(); ?> în fișierul șablon al temei dvs., acolo unde doriți să le afișați. Sau, dacă doriți să aveți un shortcode pentru a-l putea adăuga într-o pagină sau un widget, atunci pur și simplu adăugați această linie sub codul furnizat mai sus.
add_shortcode('lastweek', 'wpb_last_week_posts');
Puteți utiliza acum acest shortcode într-o postare, pagină sau un widget, astfel:
[săptămâna trecută]
Vă rugăm să rețineți că nu aveți întotdeauna nevoie de WP_Query pentru a crea interogări personalizate. WordPress vine cu o serie de funcții care vă ajută să afișați postări recente, arhive, comentarii etc. Dacă există o modalitate mai ușoară de a utiliza funcțiile existente, atunci nu este neapărat necesar să scrieți propriile interogări.
Sperăm că acest articol v-a ajutat să afișați postările de săptămâna trecută în WordPress. Experimentați cu codul și modificați-l pentru a corespunde nevoilor dvs. Anunțați-ne dacă aveți întrebări lăsând un comentariu mai jos sau alăturați-vă nouă pe Twitter.

Ali Hesari
Acest lucru este foarte util pentru mine. Mulțumesc.
hitesh
acest lucru este foarte util pentru noi. păstrați-l
Kenny
Acest lucru ar fi grozav dacă ar fi disponibil un videoclip pe YouTube
Allison
Sunt curios când/de ce aș vrea să afișez postările săptămânii? Pe pagina mea de pornire, afișez fragmente, deci postările din ultimele mele 2 săptămâni sunt vizibile. Ce îmi scapă aici? Mulțumesc!
Suport WPBeginner
Nu este necesar. Dar alți proprietari de site-uri web ar putea avea un aspect în care ar dori să afișeze separat postările din săptămâna precedentă. Acest tutorial este destinat să ajute acei utilizatori.
Admin
faisal adil
Awesome
Chris McCoy
ați putea, de asemenea, să profitați de noua interogare de dată http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
Suport WPBeginner
Da, date_query poate fi, de asemenea, utilizat pentru a atinge același obiectiv.
Admin