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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP