Wordpress:在显示链接之前检查是否有先前的帖子

时间:2010-04-27 17:21:33

标签: php wordpress navigation

我正在使用以下代码在我的Wordpress博客上显示“以前的帖子”链接。

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

问题是,当有任何以前的帖子时ARN'T,而链接没有显示,我仍然得到

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

打印出来。是否有一个if()语句我可以将它全部包裹起来,以便它检查是否有任何先前的帖子,并且只在有的情况下将其打印出来?

4 个答案:

答案 0 :(得分:16)

您可以尝试这样的事情

<?php
    if($link = get_previous_posts_link()) {
        echo '<ul><li>'.$link.'</li></ul>';
?>
如果没有任何先前的帖子,

get_previous_posts_link将返回null(falsy值)。

答案 1 :(得分:8)

要明确:

科林的回答在我看来并不正确。 不推荐使用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()) {  }

答案 2 :(得分:3)

对于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 :(得分:3)

这些答案都不适合我。 我这样解决了:

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