wordpress中添加上一頁、下一頁按鈕的方法

在wordpress博客中,要實現添加上一頁,下一頁按鈕,方法是非常簡單的。具體的實現效果可以移步我的個人博客

如果只是單純獲取鏈接,只需如下代碼即可:

<?php
previous_post_link(“上一篇: %link”,””,true);
next_post_link(“下一篇:%link”,””,true);
?>


其中函數中第一變量爲顯示的格式化字符串,第二個爲顯示的文本內容,第三個布爾型變量表示是否將文本內容顯示爲默認的文章標題。將代碼放到合適的地方就添加完成了,但是會有一些問題,比如閱讀到最後一篇文章的時候,顯示下一篇文章的位置就成了空白了,我們需要讓它顯示諸如”已經是最後一篇了”之類的詞語,因此我們加上一個判斷是否還有上(下)一篇文章的判斷:

if (get_previous_post()) ….. else echo “已經是最早的日誌了。”

if (get_next_post()) ….. else echo “已經是最新的日誌了。”
 

這個問題解決了,還有一個很實際的問題,我們的文章往往是按照不同類別分類好了,而上述函數實現的算法是根據文章的id去排序,而這樣的話直接獲取的下一篇文章就可能不是同一類別的,那應該怎麼辦呢?我們打開/wp-content/link-template.php文件查看函數代碼,源文件如下:

function get_previous_post( $in_same_term = false, $excluded_terms = ”, $taxonomy = ‘category’ ) {
return get_adjacent_post( $in_same_term, $excluded_terms, true, $taxonomy );
}

/**
* Retrieve next post that is adjacent to current post.
*
* @since 1.5.0
*
* @param bool         $in_same_term   Optional. Whether post should be in a same taxonomy term.
* @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
* @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default ‘category’.
* @return mixed       Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.
*/

因此我們發現這個函數是有參數的,下面的註釋也寫的很清楚,第一個$in_same_term表示是否獲取在同樣目錄的文章,因此我們在調用的時候只需傳遞參數true進去,就能解決問題了。 同時我們還看到後面還有幾個參數,比如第二個參數,我們可以傳遞一個字符串,裏面包含了我們想排除掉的分類目錄進去,中間以逗號隔開,因此對於上面的要求,我們也可以按以下代碼去實現:

$categories = get_the_category();$categoryIDS = array();
foreach ($categories as $category) {
array_push($categoryIDS, $category->term_id);  #將目錄的id寫入數組
}
$categoryIDS = implode(“,”, $categoryIDS);   #將數組中的內容整合爲一個字符串,中間以逗號隔開
if (get_previous_post($categoryIDS )) ….#後面省略


 這樣實現稍微麻煩了一點,不過這個思路可以讓我們去實現一些更特殊的需求。比如指定的排除某些目錄等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章