pagination - How to determine if theres a next page

admin2025-06-06  7

I am new to wordpress development, just trying to convert my HTML into a WordPress theme, I started with Chris Coyer's blank theme.

<div class="navigation">
    <div class="next-posts">
        <?php next_posts_link('&laquo; Older Entries') ?>
    </div>
    <div class="prev-posts">
        <?php previous_posts_link('Newer Entries &raquo;') ?>
    </div>
</div>

How can I output the div only if there is a next_posts_link(). I need this as I will be using <ul> for my pagination. If I don't do that, I will get an empty bullet

I am new to wordpress development, just trying to convert my HTML into a WordPress theme, I started with Chris Coyer's blank theme.

<div class="navigation">
    <div class="next-posts">
        <?php next_posts_link('&laquo; Older Entries') ?>
    </div>
    <div class="prev-posts">
        <?php previous_posts_link('Newer Entries &raquo;') ?>
    </div>
</div>

How can I output the div only if there is a next_posts_link(). I need this as I will be using <ul> for my pagination. If I don't do that, I will get an empty bullet

Share Improve this question edited Jul 16, 2018 at 16:49 wittich 1732 silver badges10 bronze badges asked Feb 12, 2011 at 11:56 Jiew MengJiew Meng 1,9115 gold badges24 silver badges40 bronze badges
Add a comment  | 

3 Answers 3

Reset to default 20

You can use get_previous_posts_link and get_next_posts_link to determine if they exists like this:

$prev_link = get_previous_posts_link(__('&laquo; Older Entries'));
$next_link = get_next_posts_link(__('Newer Entries &raquo;'));
// as suggested in comments
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>';
}

Hope This Helps

I wrote this up a while ago, but should still be valid:

http://www.ericmmartin/conditional-pagepost-navigation-links-in-wordpress-redux/

You can add the following function to your functions.php file:

/**
 * If more than one page exists, return TRUE.
 */
function show_posts_nav() {
    global $wp_query;
    return ($wp_query->max_num_pages > 1);
}

The update your code to:

<?php if (show_posts_nav()) : ?>
<div class="navigation">
    <div class="next-posts"><?php next_posts_link('&laquo; Older Entries') ?></div>
    <div class="prev-posts"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
</div>
<?php endif; ?>

the best solution is checking $wp_query->max_num_pages, but you also can use:

<?php
if(paginate_links()) {
...
}
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749194884a317157.html

最新回复(0)