Wordpress: Check if there are previous posts befor

2019-02-13 12:39发布

I'm using the following code to display a 'previous posts' link on my Wordpress blog.

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

Problem is, when there ARN'T any previous posts, while the link doesn't display, I still get

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

Printed out. Is there an if() statement I could wrap around it all so it checks if there are any previous posts, and only prints it out if there are?

4条回答
姐就是有狂的资本
2楼-- · 2019-02-13 13:08

You can try something like this

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

get_previous_posts_link returns null (falsy value) if there isn't any previous post.

查看更多
劫难
3楼-- · 2019-02-13 13:12

for people checking this in 2013, get_previous_post has been depreciated.

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

I used to use this :/

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

But now I use this :)

if(get_next_posts_link()) { echo 'next'; }
if(get_previous_posts_link()) { echo 'last'; }
查看更多
聊天终结者
4楼-- · 2019-02-13 13:26

None of the answers worked for me. I solved it this way:

$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; ?>
查看更多
Viruses.
5楼-- · 2019-02-13 13:29

Just to be clear:

Colin's answer isn't correct in my opinion. get_previous_post is not deprecated, previous_post is.

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

For me the use of get_next_post works still fine for me.

if(get_next_post()) {  }
if(get_previous_post()) {  }
查看更多
登录 后发表回答