Я использую следующий код, чтобы отобразить ссылку «Предыдущие сообщения» в моем блоге WordPress.
<nav> <ul> <li><?php previous_posts_link('Newer Entries »') ?></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; ?>