Cum să determini dacă există o pagină următoare
Sunt începător în dezvoltarea WordPress și încerc să convertesc HTML-ul meu într-o temă WordPress, am început cu tema blank a lui Chris Coyer.
<div class="navigation">
<div class="next-posts">
<?php next_posts_link('« Intrări mai vechi') ?>
</div>
<div class="prev-posts">
<?php previous_posts_link('Intrări mai noi »') ?>
</div>
</div>
Cum pot afișa div-ul doar dacă există un next_posts_link()
. Am nevoie de asta deoarece voi folosi <ul>
pentru paginarea mea. Dacă nu fac asta, voi obține un bullet gol

Puteți folosi get_previous_posts_link
și get_next_posts_link
pentru a determina dacă acestea există astfel:
$prev_link = get_previous_posts_link(__('« Înregistrări mai vechi'));
$next_link = get_next_posts_link(__('Înregistrări mai noi »'));
// după cum se sugerează în comentarii
if ($prev_link || $next_link) {
echo '<ul class="navigation">';
if ($prev_link){
echo '<li>'.$prev_link .'</li>';
}
if ($next_link){
echo '<li>'.$next_link .'</li>';
}
echo '</ul>';
}
Sper că acest lucru vă ajută

Singura problemă este că ai putea afișa o listă goală, ceea ce va genera markup invalid și, în efect, va avea aceeași problemă pe care o are utilizatorul cu codul existent.

@t31os, cred că voi face ceva de genul if ($prev_link || $next_link) // output ul

Am scris acest lucru acum ceva timp, dar ar trebui să fie încă valabil:
http://www.ericmmartin.com/conditional-pagepost-navigation-links-in-wordpress-redux/
Puteți adăuga următoarea funcție în fișierul functions.php
:
/**
* Dacă există mai mult de o pagină, returnează TRUE.
*/
function show_posts_nav() {
global $wp_query;
return ($wp_query->max_num_pages > 1);
}
Apoi actualizați codul la:
<?php if (show_posts_nav()) : ?>
<div class="navigation">
<div class="next-posts"><?php next_posts_link('« Înregistrări mai vechi') ?></div>
<div class="prev-posts"><?php previous_posts_link('Înregistrări mai noi »') ?></div>
</div>
<?php endif; ?>

Este important de remarcat că $wp_query
nu pare să fie disponibil peste tot; de exemplu, am încercat să îl folosesc într-un șablon suprascris WooCommerce și obiectul nu exista, așa că a trebuit să îl apelez din functions.php
folosind răspunsul lui Eric Martin.
