wordpress:previous_post_link()/ next_post_link()占位符

时间:2010-06-09 06:37:46

标签: wordpress

我在使用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">'; 
    }; 
?>

3 个答案:

答案 0 :(得分:3)

因此,您可以使用next_post_link()previous_post_link()“捕获”ob_start()ob_get_clean()返回的内容,然后对其应用条件。

实践中的代码:

$previous_string = "&lt;-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 &raquo;'); } 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/