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


Я использую следующий код для отображения ссылки "предыдущие сообщения" в моем блоге Wordpress.

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

Проблема в том, что когда нет предыдущих сообщений, а ссылка не отображается, я все равно получаю

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

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

Author: Chris Armstrong, 2010-04-27

4 answers

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

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

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

 15
Author: iBobo, 2010-04-27 17:45:00

Просто для ясности:

Ответ Колина, на мой взгляд, неверен. get_previous_post не является устаревшим, а 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()) {  }
 8
Author: Decor, 2013-04-18 13:14:47

Для людей, проверяющих это в 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'; }
 3
Author: colin, 2013-03-06 17:33:34

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

$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; ?>
 3
Author: Nadav, 2017-11-06 08:41:31