2010-06-09 97 views
4

我在previous_post_link()next_post_link()功能中遇到问题。如果没有以前的帖子,功能previous_post_link()不会显示链接,对于next_post_link()和最后一篇帖子也是如此。我想要一个占位符图像,以便设计保持一致。wordpress: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

这样你就可以“捕获”什么next_post_link()和使用ob_start()ob_get_clean()previous_post_link()回报,然后申请一个条件吧。

守则做法:

$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

为什么不能尝试以下?

<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/