Blog 板


LINE

我為了加菲貓漫畫的部落格想要有「精選漫畫列表」的功能, 特別改寫了wp-postrating的部分功能,因為我不會PHP,所以改起來特別辛苦, 如果有改得不好的地方,還請大家多多指教~ blog http://mygeotravel.org/hcc/blog/2009/06/25/3309.html 功能示範 http://0rz.tw/C7WAg ---------------------------- 加菲貓漫畫部落格的兩大重要功能:「搜尋」和「評分」已經都大致完工了。 其中幫漫畫評分的功能是利用WP-Postrating的插件來完成,這個插件可以直 接用滑鼠「點星星」就完成評分,是我覺得最好用的地方。不過真正使用 WP-Postrating之後,有些地方還是需要做點「微調」,於是我把修改的部分寫 下來,希望有需要的朋友可以得到一些幫助。 一、 預設評分 WP-Postrating原本並沒有預設每篇文章的評分,於是可能造成以下的情況: 文章A—有10位讀者給分數,其中9為給5分,另一位給4分,平均4.9分; 文章B—只有1位讀者給分數,給5分,平均5分; 這樣看起來,當然是文章A比較受歡迎,但依照分數排序時,文章B卻會永遠排在 第一名,因為文章A的分數永遠也不可能超過文章B了(滿分5分)。因此如果每 篇文章事先都有一個分數(例如3分),就可以避免掉上述問題。解決方法如下: 1. 將現有文章加入評分:若在啟用WP-Postrating之前,你就已經有很多文 章,千萬不要一篇一篇自己去打分數,太累!請先啟用WP-Postrating插 件,他會幫文章開啟三個自訂欄位。此時可利用「Mass Custom Fields Manager」插件,把每篇文章的ratings_users欄位(有多少人評價這篇 文章)設為1;把每篇文章的ratings_score欄位(這篇文章的總得分) 設為3;把每篇文章的ratings_average欄位(這篇文章的平均得分)設 為3,這樣每篇文章就有一個三分的評價了。 http://orenyomtov.info/mass-custom-fields-manager-wordpress-plugin.html 2. 未來發表的每篇文章預設評分:修改wp-postratings.php中 ### Function: Add Rating Custom Fields段落,將 ratings_users(有多少人評價這篇文章)的預設值由0改為1;將 ratings_score(這篇文章的總得分)的預設值由0改為3;將 ratings_average(這篇文章的平均得分)的預設值由0改為3。(相關說明) http://forums.lesterchan.net/index.php/topic,2735.0.html 二、 搜尋給定時間範圍內的好評文章 WP-Postrating有提供例如:過去一週、過去一個月、或過去一年內評分最高的 文章列表功能,但這些時間範圍都有一個基準,那就是由「今天」起算。加菲 貓漫畫部落格一直想選出「年度」精選漫畫(例如2008),那時間範圍就必須 是2008-1-1到2008-12-31,這時候就必須要自己修改設定時間範圍的程式。 解決方法如下: 1. 修改wp-postratings-stats.php中### Function: Display Highest Rated Page/Post With Time Range段落(根據1.4版改寫,其他功能 可以比照改寫),將283-326行複製一份,貼在327行之後。 2. 將283行的註解改為### Function: Display Highest Rated Page/Post With Time Range New 3. 將284-285行的功能名稱get_highest_rated_range更名為 get_highest_rated_range_new 4. 將285行中「$time = '1 day',」變數刪除,並在原處新增兩個變 數「$min_time = '2009-06-01',$max_time = '2009-06-30',」代 表預設的起始時間(2009-06-01)和結束時間(2009-6-30)。 5. 刪除290行$min_time = strtotime('-'.$time, current_time(' timestamp')); 6. 將311行中,原本是比較評分時間範圍的rating_timestamp >= $min_time改成比較文章時間$wpdb->posts.post_date >= '". $min_time."' AND $wpdb->posts.post_date <= '".$max_time."' 7. 在想要顯示好評文章列表的頁面(建議新增一個頁面樣版) , 加入WP-Postrating預設的語法(其中功能名稱有加_new): <?php if (function_exists('get_highest_rated_range_new')): ?> <ul> <?php get_highest_rated_range_new(); ?> </ul> <?php endif; ?> 8. 如果想要顯示2008-01-01到2008-12-31,就將上面第三行改成 <?php get_highest_rated_range_new(‘2008-01-01’,’ 2008-12-31’); ?> 其餘設定則參閱原始語法。 http://lesterchan.net/wordpress/readme/wp-postratings.html 三、計分方式調整 在「顯示特定時間範圍內評分列表」的功能中,計分方式好像有點怪,他 不是利用每篇文章的自訂欄位數值,而是利用評分記錄。如此一來,我們 剛剛加入的預設評分就無法發揮功效,所以還要調整一下,解決方法如下 (同樣修改wp-postratings-stats.php): 1. 將第311行總得分部分SUM($wpdb->ratings.rating_rating) AS ratings_score改成SUM($wpdb->ratings.rating_rating)+3 AS ratings_score 2. 將第311行平均得分部分ROUND(((SUM($wpdb->ratings.rating_rating) /COUNT($wpdb->ratings.rating_postid))), 2) AS ratings_average 改成ROUND((((SUM($wpdb->ratings.rating_rating)+3) /(COUNT($wpdb->ratings.rating_postid)+1))), 2) AS ratings_average 四、好評列表直接顯示全文 原始預設的列表,只會顯示清單,但我想把漫畫內容直接顯示在列表,解 決方法如下(同樣修改wp-postratings-stats.php): 1. 將第314行原本輸出的內容$output .= expand_ratings_template ($temp, $post->ID, $post, $chars)."\n"; 改為$output .= expand_ratings_template($temp, $post->ID, $post, $chars)."\n".nl2br($post->post_content)."\n"."<hr>"; 五、直接從網址丟入參數 步驟二7中的PHP語法必須放在網頁模版中,或是利用頁面可以執行PHP的插件。 但加菲貓漫畫就算一年一個精選列表,也要三十幾個網頁模版或文章頁面 (崩潰),所以如果能用網址來丟起迄時間的參數,就只要一個頁面可以搞定!解決方法如下: 1. 開啟一個新頁面,並編寫一個頁面模版,加入步驟二7中的PHP語法,假設網址 為:http://mygeotravel.org/garfield/blog/?page_id=12791 2. 將網頁模版中的 <?php if (function_exists('get_highest_rated_range_new')): ?> <ul> <?php get_highest_rated_range_new(); ?> </ul> <?php endif; ?> 改為 <?php echo $_GET['date1'],'~',$_GET['date2']; ?> <?php the_content('Read the rest of this entry &raquo;'); ?> <?php if (function_exists('get_highest_rated_range_new')): ?> <ul> <?php get_highest_rated_range_new($_GET['date1'],$_GET['date2']); ?> </ul> <?php endif; ?> 3. 在瀏覽器上輸入網址(以下兩行網址要接起來) http://mygeotravel.org/garfield/blog/?page_id=12791 &date1=2009-05-01&date2=2009-06-20 網址中的date1和date2參數就會被抓進頁面的PHP中,當作起迄日期。 4. 以後只要在頁面中輸入上述連結,就可以連結到特定日期範圍的好評列表。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.82







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP