2010-06-09 76 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/