Cómo determinar si hay una página siguiente

11

Soy nuevo en el desarrollo de WordPress, solo intento convertir mi HTML en un tema de WordPress, comencé con el tema en blanco de Chris Coyer.

<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>

¿Cómo puedo generar el div solo si hay un next_posts_link() ? Necesito esto ya que usaré <ul> para mi paginación. Si no hago eso, obtendré una bala vacía

    
pregunta Jiew Meng 12.02.2011 - 12:56

3 respuestas

16

Puedes usar get_previous_posts_link y get_next_posts_link para determinar si existen así:

$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>';
}

Espero que esto ayude

    
respondido por el Bainternet 12.02.2011 - 13:12
9

Escribí esto hace un tiempo, pero aún debería ser válido:

enlace

Puedes agregar la siguiente función a tu archivo functions.php :

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

La actualización de su código para:

<?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; ?>
    
respondido por el Eric Martin 12.02.2011 - 23:45
0

la mejor solución es verificar $wp_query->max_num_pages , pero también puedes usar:

<?php
if(paginate_links()) {
...
}
    
respondido por el Maxwell s.c 09.11.2018 - 17:26

Lea otras preguntas en las etiquetas