我正在使用以下代码在我的Wordpress博客上显示“以前的帖子”链接。
<nav>
<ul>
<li><?php previous_posts_link('Newer Entries »') ?></li>
</ul
</nav>
问题是,当有任何以前的帖子时ARN'T,而链接没有显示,我仍然得到
<nav>
<ul>
<li><</li>
</ul
</nav>
打印出来。是否有一个if()语句我可以将它全部包裹起来,以便它检查是否有任何先前的帖子,并且只在有的情况下将其打印出来?
答案 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; ?>