WordPress: проверьте, есть ли предыдущие сообщения перед отображением ссылки

Я использую следующий код, чтобы отобразить ссылку «Предыдущие сообщения» в моем блоге WordPress.

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

Проблема в том, что когда у ARN'T есть какие-либо предыдущие сообщения, а ссылка не отображается, я все равно получаю

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

Распечатанный. Есть ли оператор if (), который я мог бы обернуть вокруг него, чтобы он проверял, есть ли какие-либо предыдущие сообщения, и только распечатывает его, если есть?

Вы можете попробовать что-то вроде этого

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

get_previous_posts_link возвращает значение null (ложное значение), если предыдущей записи не было.

Просто быть чистым:

На мой взгляд, ответ Колина неверен. get_previous_post не устарел, предыдущий_пост.

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

Для меня использование get_next_post работает для меня отлично.

 if(get_next_post()) { } if(get_previous_post()) { } 

для людей, проверяющих это в 2013 году, get_previous_post был обесценен.

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

Я использовал это: /

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

Но теперь я использую это 🙂

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

Ни один из ответов не работал для меня. Я решил это так:

 $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; ?>