Paginare cu 5 articole pe pagină
Încerc să creez o listă paginată de articole și am folosit Codex-ul pentru a scrie cod, dar se pare că fac ceva greșit.
Acestea sunt argumentele mele pentru wp_query
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$the_query = new WP_Query(
array
(
'posts_per_page' => 5,
'post_type' => 'post',
'paged' => $paged
)
);
Conținutul variabilei $paged
afișează într-adevăr 1
așa cum era de așteptat
Am adăugat next_posts_link
la instrucțiunea mea if
dar link-urile nu se afișează.
if ( $the_query->have_posts() ) {
previous_posts_link( '« Articole mai noi' );
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<div class="news-item">';
// conținutul articolului aici
echo '</div>';
}
next_posts_link( 'Articole mai vechi »', 0 );
}
EDITARE
Pagina pe care se afișează acest cod nu este pagina principală, ci o pagină statică pe care am creat-o. Am creat șablonul page-news.php
și apoi am creat o pagină numită 'Știri' unde se află acest cod. Ar putea fi acesta motivul?
Acest lucru funcționează pentru mine pe o singură pagină folosind un șablon. Asigură-te că setezi next_posts_link( 'Articole mai vechi »', $the_query->max_num_pages );
.
// setează parametrul "paged" (folosește 'page' dacă interogarea este pe o pagină frontală statică)
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : '1';
$args = array (
'nopaging' => false,
'paged' => $paged,
'posts_per_page' => '5',
'post_type' => 'post',
);
// Interogarea
$query = new WP_Query( $args );
// Bucla
if ( $query->have_posts() ) {
previous_posts_link( '« Articole mai noi' );
while ( $query->have_posts() ) {
$query->the_post();
echo '<div class="news-item">';
// conținutul articolului aici
echo '<h1 class="page-title screen-reader-text">' . the_title() . '</h1>';
echo '</div>';
}
next_posts_link( 'Articole mai vechi »', $query->max_num_pages );
} else {
// nu s-au găsit articole
echo '<h1 class="page-title screen-reader-text">Nu s-au găsit articole</h1>';
}
// Restabilește datele originale ale articolului
wp_reset_postdata();

Pagina pe care apare acest lucru nu este o pagină principală, ci o pagină statică pe care am creat-o. Am creat șablonul page-news.php
și apoi am creat o pagină numită 'Știri' și acolo se află acest cod. Ar putea fi acesta motivul?

Testam pe pagina principală în afara buclei principale, voi testa acest lucru pe o pagină statică și îți voi spune dacă este diferit.

Deci, se pare că dispare când pui asta într-un template. Acum că am un exemplu funcțional pot testa mai departe, un moment.

@user1486133, acum funcționează perfect. Doar adaugă $the_query->max_num_pages
la next_posts_link
în loc de 0.
