多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > WordPress > WordPress實現文章按最新評論時間排序

WordPress實現文章按最新評論時間排序

來源:程序員人生   發布時間:2014-01-08 18:06:00 閱讀次數:3602次

WordPress的首頁、分類頁、標簽頁等存檔頁,默認是按照發布時間對文章進行排序的,現在想按最新評論時間排序,其實這個功能就是類似論壇的帖子列表效果,新發布的帖子置頂,有新評論的帖子也同樣置頂,這樣做的好處是可以增加互動,增加帖子評論數。在WordPress下也是可以實現這樣的功能:

  • 新發布(新更改)的文章排在頂部
  • 有新評論的文章立即排到頂部
  • 所有文章按照其最新一條評論的時間排序

實現的方法是給每篇文章添加一個自定義字段commentTime,這個字段的值為最新一條評論的時間,然后使用query_posts函數實現所有文章按照自定義字段commentTime的值進行排序。實現原理就這么簡單,下面講講具體的實現方法:

一、給所有文章添加自定義字段commentTime

給每篇文章添加這個自定義字段的目的是為了方便對文章進行排序。可能叫你手動一篇一篇文章地添加自定義字段,尤其是你有幾百上千篇文章的情況下,一定會是你抓狂。不過請你放心,我不會讓你用這么做,這里我寫了個PHP腳本,可以幫你自動給所有文章添加字段commentTime。使用方法:下載以下文件,然后上傳到跟wp-config.php相同的目錄(就是WordPress的安裝目錄)下,然后在瀏覽器中運行這個文件,如 http://example/meta-sql.php

下載地址:meta-sql.php

二、添加相應action代碼

這一步添加的代碼可以實現發布新文章(或新更改)、有新評論的時候,自動添加/更新自定義字段commentTime的值,不需要你手動干預。在你當前使用主題的functions.php中添加以下php代碼:

function comment_meta_add($post_ID) {
// 發布新文章或修改文章,更新/添加commentTime字段值
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
if( !update_post_meta($post_ID, 'commentTime', time()) ) {
add_post_meta($post_ID, 'commentTime', time());
}
}
}

function comment_meta_update($comment_ID) {
// 發布新評論更新commentTime字段值
$comment = get_comment($comment_ID);
$my_post_id = $comment->comment_post_ID;
update_post_meta($my_post_id, 'commentTime', time());
}

function comment_meta_delete($post_ID) {
// 刪除文章同時刪除commentTime字段
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
delete_post_meta($post_ID, 'commentTime');
}
}
add_action('save_post', 'comment_meta_add');
add_action('delete_post', 'comment_meta_delete');
add_action('comment_post', 'comment_meta_update');

三、query_posts更改文章排序

如果你只想實現首頁的文章按最新評論時間排序,那么此步只修改主題目錄下的index.php即可,如果還想修改其他存檔頁面如分類頁、標簽頁等,那就修改相應的模板文件,如archive.php。

舉例說明,在index.php中查找代碼 if (have_posts())while (have_posts()),在上一行添加query_posts函數即可:

if(!$wp_query)
global $wp_query;

$args = array(
'meta_key' => 'commentTime',
'orderby' => meta_value,
'order' => DESC
);
$args = array_merge( $args, $wp_query->query );
query_posts($args);

對archive.php的修改也一樣!如果對query_posts的用法不熟悉,可以看這篇文章: WordPress函數query_posts用法匯總。

數據庫清理腳本

如果某一天你不想使用這個功能了,你可以下載以下文件幫助你自動清理數據庫中的無用信息,放到WordPress的安裝目錄下,然后在瀏覽器中執行一下就可以了,如http://example/meta-clear-sql.php

下載地址:meta-clear-sql.php

好了,全部教程到此就結束了,完成以上步驟后就什么都不用管了,文章就是按照最新評論時間進行排序了。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
為碼而活
積分:4237
15粉絲
7關注
欄目熱點
關閉
程序員人生
主站蜘蛛池模板: 最新精品亚洲成a人在线观看 | 羞羞视频免费入口网站 | 国产一区二区三区精品视频 | 日韩 亚洲 欧美 中文 高清 | 好大好湿好硬顶到了好爽(双性) | 成片免费观看视频在线网 | 亚洲欧美精品一区天堂久久 | 欧洲一区| 免费一级国产生活片 | 久久日视频 | 日韩精品一区二区三区中文精品 | 亚洲成a人片777777网站 | 国产在线视频一区 | 久一在线 | 欧美在线一级精品 | 最新中文字幕乱码在线 | 欧美亚洲日本一区二区三区浪人 | 久久黄色毛片 | 亚洲欧美中文字幕专区 | 国产欧美在线观看不卡 | 久久亚洲精品人成综合网 | 最近中文字幕免费国语 | xxxxx性中国hd | 国产精品二区三区 | 国产精品一区二区久久精品涩爱 | 性一交一乱一伦一色一情 | 亚洲精品免费在线视频 | 日本xxx护士与黑人 日本xxx网站 | 亚洲天堂日韩在线 | 国产精品69白浆在线观看免费 | 日本视频一区二区免费播放 | 中文字幕视频在线观看 | 美国亚洲成年毛片 | 欧美高清videos36op | 亚洲激情在线播放 | 欧美日韩高清在线观看 | 亚洲一成人毛片 | 欧美18videosex护士 | 香蕉在线精品一区二区 | 欧美一区二区三区在线可观看 | 在线免费视频 |