因为“搬砖阶段”装得实在太辛苦,索性给自己的blog写个无聊的功能。
本人一直致力于减少无意义的留言,所以想到了一个“把跟我聊得最开心的人当作友链”的主意。这个主意的亮点在于不是你留言的字数多就能上榜,而是我愿意跟你多聊,你才能上榜。不仅能促进有意义的回复,而且省去了维护友链的麻烦。
下面看代码。
其实代码的核心是一段SQL语句。我把它封进第一个函数里。其意义是取得半年之内我回复的字数累计最高的13个人的姓名、邮箱和链接。
function apip_get_links() { global $wpdb; $limit = 13; //取多少条,可以自己改 $scope = "6 MONTH"; //可以使用的时间关键字:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,YEAR... $sql = "SELECT comment_author_email, comment_author_url, comment_author, SUM(comment_length) as words_sum FROM $wpdb->comments aa INNER JOIN ( SELECT comment_parent, char_length(comment_content) as comment_length FROM $wpdb->comments WHERE user_id <> 0 AND DATE_SUB( CURDATE( ) , INTERVAL $scope ) <= comment_date_gmt ) AS bb WHERE aa.comment_ID = bb.comment_parent GROUP BY comment_author_email ORDER BY words_sum DESC LIMIT $limit"; $result = $wpdb->get_results($sql); return $result; }
第二个函数,用来输出链接。这么写只是为了把显示逻辑跟数据源分开。如果想手动添加到某个php里,调用这个函数就够了。css请自理。
function apip_link_page(){ $links = apip_get_links(); $ret = '<ul class = "apip-links">' ; foreach ( $links as $link ){ $parm = sprintf( '<li><div class="commenter-link vcard">%1$s</div><a href="%2$s" target="_blank" class="url">%3$s</a></li>', get_avatar( $link->comment_author_email, 32), $link->comment_author_url, $link->comment_author) ; $ret.= $parm; } $ret.='</ul>'; echo $ret; }
第三步,添加short_code,以便在页面里直接调用。
add_shortcode('mylink', 'apip_link_page');
新建一个页面,在里面加上短代码(换成半角方括号)
【mylink】
即可。
P.S 我的排行榜还真是毫无意外发生啊!
说句实话,在网铃里响起你博客更新一篇这样的技术文是让我很震惊的。
震啊震啊就习惯了。
不常写一是因为WP大多数功能都能从现成的插件和主题里抄过来,我总不能写我是怎么抄的吧?只有这种自己开脑洞的才有写的价值。
二是我自己本职的C本身没什么写头,大能比比皆是,要是敢涉及硬件,客户会分分钟把我告得姨妈巾都用不起。
三是因为懒。
额···好强大的理由~
我怎么感觉是写独立博客的博主也都会写代码。
久病成医。php也确实非常简单。
“而是我愿意跟你多聊,你才能上榜。”
哈哈哈,就喜欢这股嘚瑟劲。
以及你们懂技术就是好啊,咱就苦手了,光用想法,行动力为负数……
你那个想法究竟是啥,说不定哪天我闲着了呢
突然就很虔诚地索要微信ing,方便的话,邮件到我留言的头像邮箱
不方便的话……记得把这条评论删掉,以免被人看到我勾搭大龄人夫居然以失败收场……
你成功了.然而我并不怎么喜欢用微信.22:00~24:00吧.
微信号记不住,过会儿发给你.
不喜欢微信也可以,我就直接先把我想法直接写邮件给你好了,也一样的。
你顺便帮我看看有无实际操作的可能性即可。
我的想法邮件已发送至你评论所用头像的那个邮箱了,注意查收
看来勾搭成功!
哈哈,我竟/果然也位列其中。程序猿终于也有憋不住的时候了!
演技欠佳只能真的做点事了。
那个列表还可以美化一下,功能不错
倒是标签云的格式很美,抄了
所以我说CSS自理嘛!我自己都没工夫理.
这个功能厉害啊
是友情链接吗? 怎么感觉怪怪的!
免维护版的友链.格式还没收拾.
demo 呢?
本站的友情链接啊。CSS还没加。
去你的友情链接页面瞅了眼,发现还是旧ID旧网址啊,我的留言都是填的最新信息好吧!
你这代码不会自动抓取最新的ID,网址?
得改!!!
改个排序就可以了.或者忍到你换域名半年以后…
不看文章,这题目我读了3遍了还是不知道啥意思,我的语文能力越来越差了。
好牛逼的char_length用法,另外,虽然说CSS自理,但你自己起码也要理一下吧,这么懒真的好么。。。
其实是我作茧自缚了,这是我自定义的大插件里的一部分,不同的css是分开加载的.然后我发现调用的逻辑有问题,所以就没加上…
反正没多少东西 就是对 ul li 处理一下直接写页面里就好了。
我的css js都放七牛有的时候懒的去更新缓存,又是独立页面的东西 有修改的时候我都是直接写在页面里,只是偶尔洁癖发作想起来有些不舒服。
我现在的这个要是不加载头像的话其实一点儿毛病都没有,但加了图片不处理就难看了。因为我换主题算比较频的,所以不愿意把功能放到主题里。话说用JS应该有通过链接获取网站标题的方法吧?
链接读取页面,然后通过页面内的title取值,我JS很差估计是这样吧,可为啥要这么做呢?
可以通过wp_localize_script设置个变量存储title,这样不同页面就不同title值了,然后js引用就好了啊。
因为不用维护啊.存的话哪儿存不了,可谓无就是懒得手动维护啊.
会写点代码真好啊。我倒是想给博客加点各种小功能,碍于能力有限,只能作罢啊。
大多数都有现成儿的,php真不是什么难掌握的东西,我就是完全自学的。当然我本身是个C程序员。
居然能上榜,倍感荣幸!
想法不错,做的也不错,C程序猿触类旁通PHP,实现一点小功能自然不在话下。话说我也要重新拾一下php了,荒废许久了。
我一般喜欢坐享其成别个的成果。
所以,你能想到做到,真令我佩服。
还有很多做不到的,没写出来就是了。
技术猿的功能太强大了
不出意外,我还需要多努力,多努力啊多努力。:)
就留这种东西想冲榜有难度啊。
看着挺NB的,但看完我基本可以猜出第一位是谁了
这说明你也挺投契的.
这个算法比较公平,友情链接实至名归
这种想法真的很有新意,这样就可以避免加上一些友链后,半年都不来访一次,这样的友链才是真正的友链
主要是懒得维护。而且对换链接的行为非常反感。
啥情况,你博客速度突然慢的一b
大神就是大神我也听过了好多人说php确实十分简单 待我学有所成…
可以学学思想,初学还是不建议从php入手。
你标题的大小写不规范,借我用下 http://unee.wang/post/20160401blog
随便拿。我一向是只管自己写着痛快,有没有人看无所谓的。
突然有一种想和你聊天的冲动抑制不住啊!
吾道不孤,幸甚至哉。