2010-04-27 11 views
6

Estoy usando el siguiente código para mostrar un enlace de 'publicaciones anteriores' en mi blog de Wordpress.Wordpress: compruebe si hay publicaciones anteriores antes de mostrar el enlace

 <nav> 
      <ul> 
       <li><?php previous_posts_link('Newer Entries &raquo;') ?></li> 
</ul 
</nav> 

El problema es que, cuando hay alguna arn't mensajes anteriores, mientras que el enlace no se muestra, sigo teniendo

<nav> 
      <ul> 
       <li><</li> 
</ul 
</nav> 

imprimirse. ¿Hay una declaración if() que pueda abarcar todo para que compruebe si hay publicaciones anteriores, y solo las imprime si las hay?

Respuesta

13

Usted puede intentar algo como esto

<?php 
    if($link = get_previous_posts_link()) { 
     echo '<ul><li>'.$link.'</li></ul>'; 
?> 

get_previous_posts_link devuelve null (valor Falsy) si no hay ningún post anterior.

+0

perfecto, gracias! –

+0

Esto no funciona para mí en WordPress 4.6.1 –

+0

¿No debería ser '==' en lugar de '='? – brasofilo

3

para las personas que verifican esto en 2013, get_previous_post se ha depreciado.

http://codex.wordpress.org/Next_and_Previous_Links http://codex.wordpress.org/Function_Reference/previous_post

Solía ​​usar esto:/

if(get_next_post()) { echo 'next'; } 
if(get_previous_post()) { echo 'last'; } 

Pero ahora el uso de este :)

if(get_next_posts_link()) { echo 'next'; } 
if(get_previous_posts_link()) { echo 'last'; } 
+0

Esto no funciona para mí en WordPress 4.6.1 –

7

Para ser claro:

respuesta de Colin no es correcto en mi opinión. get_previous_post no está en desuso, previous_post is.

http://codex.wordpress.org/Function_Reference/get_previous_post http://codex.wordpress.org/Function_Reference/previous_post

Para mí el uso de get_next_post funciona todavía bien para mí.

if(get_next_post()) { } 
if(get_previous_post()) { } 
+1

+1 esto funciona bien para mí en WP 3.5.2 – Alex

+0

Funciona para mí en WP WordPress 4.6.1 –

2

Ninguna de las respuestas me funcionó. Lo resolví de esta manera:

$next = get_permalink(get_adjacent_post(false,'',false)); //next post url 
$prev= get_permalink(get_adjacent_post(false,'',true)); //previous post url 
<?php if (get_the_permalink()!=$prev): ?> 
    <a href='<?php echo $prev ?>'>Previous</a> 
<?php endif; ?> 
<?php if (get_the_permalink()!=$next): ?> 
    <a href="<?php echo $next ?>">Next</a> 
<?php endif; ?> 
Cuestiones relacionadas