Wordpress: проверьте, есть ли предыдущие сообщения перед отображением ссылки - PullRequest
7 голосов
/ 27 апреля 2010

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

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

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

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

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

Ответы [ 4 ]

16 голосов
/ 27 апреля 2010

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

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

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

8 голосов
/ 18 апреля 2013

Просто чтобы прояснить:

На мой взгляд, ответ Колина неверный. 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()) {  }
3 голосов
/ 03 сентября 2017

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

$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 голосов
/ 06 марта 2013

для людей, проверяющих это в 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'; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...