我在使用previous_post_link()
和next_post_link()
功能时遇到问题。如果没有上一篇文章,则函数previous_post_link()
不会显示链接,同样适用于next_post_link()
和最后一篇文章。我希望有一个占位符图像,以便设计保持一致。
目前我有左右指向绿色箭头的图像,如果没有更多帖子可以返回,我想放置一个灰色箭头的图像。
有没有办法使用next_post_link()
/ previous_post_link()
功能,但没有删除链接。
我也想知道链接是否有办法循环,所以如果你来到最新的帖子,下一个帖子链接会带你回到第一篇帖子。
************更新************
以下是基于“沉默”建议(接受的答案)的代码,使用get_adjacent_post()
:
<?php
if(get_adjacent_post(false, '', true)) {
previous_post_link('%link','<img src="larr.gif"/>');
}
else {
echo '<img src="larr2.gif"/>';
};
if(get_adjacent_post(false, '', false)) {
next_post_link('%link','<img src="rarr.gif"/>');
}
else {
echo '<img src="rarr2.gif">';
};
?>
答案 0 :(得分:3)
因此,您可以使用next_post_link()
和previous_post_link()
“捕获”ob_start()
和ob_get_clean()
返回的内容,然后对其应用条件。
实践中的代码:
$previous_string = "<-Back";
ob_start(); // start output buffering
previous_post_link("%link", $previous_string);
$previous_link = ob_get_clean(); // stop output buffering and store
if ($previous_link == '') {
echo '<span style="color: #ccc">' . $previous_string . '</span>';
} else {
echo $previous_link;
}
答案 1 :(得分:2)
我自己从不尝试过。但是,您可以参考this post。它使用get_adjacent_post()。
答案 2 :(得分:1)
为什么你不能尝试以下?
<div style="float:right"><?php if(get_previous_posts_link()) { previous_posts_link('Newer Entries »'); } else { echo 'No Newer Entries'; } ; ?></div>
或者,要显示博客帖子的下一个和上一个帖子链接,您可以轻松地执行此操作。这在globinch.com(WordPress提示:如何添加博客的下一个和上一个帖子链接?)中得到了很好的解释。
http://www.globinch.com/2010/10/12/wordpress-tips-how-to-add-next-and-previous-post-links-to-blog/