我們都知道,WordPress 默認自帶瞭文章(post)、頁面(page)等文章類型,然後從 3.0 開始就支援自定義文章類型。比如WordPress大學目前所使用的問答功能,其實就是使用自定義文章類型的。在這個 DW Question & Answer 問答外掛中,它註冊瞭“dwqa-question”和“dwqa-answer”兩種文章類型,並且為它們添加瞭迴響功能,這樣就可以對問題和回答進行迴響。
而文章和頁面也有迴響功能,在實際使用中,在 設置 – 討論 中設置迴響分頁,並且在頁面頂部顯示新的迴響:
由於這個是全局設置,導致問答頁面的迴響也在頂部顯示新的迴響,這樣看起來就有些怪怪的:
我希望專門針對問答頁面實現頁面頂部顯示老的迴響,如下,這樣看起來就好些瞭:
查閱瞭一下官方文檔,發現有一個 comments_array 鉤子,可以用來排序迴響,同時借用php函數 array_reverse() 就可以將迴響倒序,從而達到所需效果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** * 讓問答的迴響和文章的迴響排序顛倒 * https://www.wpdaxue.com/wordpress-reverse-comments.html */ function wpdx_reverse_comments($comments) { global $post; if($post->post_type == 'dwqa-question' || $post->post_type == 'dwqa-answer' ){ //如果是 dwqa-question 或 dwqa-answer 這兩個文章類型的迴響就顛倒排序 return array_reverse($comments); }else{ //否則正常排序 return $comments; } } add_filter ('comments_array', 'wpdx_reverse_comments'); |
/**
* 讓問答的迴響和文章的迴響排序顛倒
* https://www.wpdaxue.com/wordpress-reverse-comments.html
*/
function wpdx_reverse_comments($comments) {
global $post;
if($post->post_type == ‘dwqa-question’ || $post->post_type == ‘dwqa-answer’ ){
//如果是 dwqa-question 或 dwqa-answer 這兩個文章類型的迴響就顛倒排序
return array_reverse($comments);
}else{
//否則正常排序
return $comments;
}
}
add_filter (‘comments_array’, ‘wpdx_reverse_comments’);
以上就是具體例子,大傢參考一下即可。