标题: bbPress积分插件——Virtual Money
作者: Demon
链接: https://demon.tw/my-work/bbpress-pluginvirtual-money.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
bbPress 简洁得有点儿过头了,连用户积分功能都没有,官网上貌似也找不到类似的插件。没办法,毛主席教导我们,自己动手,丰衣足食,自己写一个插件吧。
先在 bbPress 的 my-plugins 文件夹中新建一个 virtual-money 文件夹,再新建一个 virtual-money.php 文件,然后加上插件的说明,让 bbPress 显示作者和用途:
/* Plugin Name: Virtual Money Plugin URI: https://demon.tw/my-work/bbpress-pluginvirtual-money.html Description: add virtual money for bbPress Author: Demon Author URI: https://demon.tw/ Version: 0.1 */
这是 bbPress 插件主文件必要的注释,没有打上是无法被读取的喔!接着加上我们的 hook 函数:
if ( is_topic() ) { // 判断是否为主题,不是则不启动显示货币功能 add_filter('post_author_title_link', 'vm_show', 10, 2); add_filter('post_author_title', 'vm_show', 10, 2); } add_action('bb_new_post', 'vm_add_money'); // 回帖加金币 add_action('bb_delete_post', 'vm_sub_money'); // 删帖减金币
然后是各 hook 函数的定义:
function vm_add_money( $post_id ) { $user_id = bb_get_current_user_info( 'id' ); // 取得用户的UID $user = bb_get_user( $user_id ); // 取得用户信息 $money = (int) $user->money; // 取得 Money 这个 Meta 值(我们自行新增用于纪录货币的字段) $post = bb_get_post( $post_id ); //取得帖子信息 if ( $post->post_position == 1 ) { // 发表帖子 $money += 5; // 金币+5 } else if( $post->post_position > 1 ) { // 回复帖子 $money += 1; // 金币+1 } bb_update_meta( $user_id, 'money', $money, 'user' ); //更新 Money 这个 Meta 值 }
vm_sub_money 的定义和 vm_add_money 的类似,只不过加号变成了减号,就不贴出来了。vm_show 函数:
function vm_show( $text, $post_id = 0 ) { // $post_id 由被 hook 的 post_author_title 函数传入,不一定是 0 if( !$post_id ) return $text; $user_id = get_post_author_id( $post_id ); // 取得用户的UID $user = bb_get_user( $user_id ); // 取得用户信息 if ( $user_id && !isset($user->money) ) { // 如果使用者的 Money 值还未被设定,则预设为 0 bb_update_meta( $user_id, 'money', 0, 'user' ); } $money = (int) $user->money; // 确保取得的Money值为数值 $money = "<div>金币: {$money}个</div>"; return $text . $money; //加上显示金币的 hmtl 让 bbPress 继续处理 }
插件效果展示( demo ):http://vbs.demon.tw/topic.php?id=1
下面提供插件完整版下载,解压后上传到 bbPress 的 my-plugins 文件夹,然后在后台启用即可。
[download id=63]
赞赏微信赞赏支付宝赞赏
随机文章:
真牛,积分插件有的~忘了叫啥了
不错!
希望做着能多找找BUG 嘿嘿
弄好了 俺们再试用 支持作者感谢作者
哪里有BUG?
下来seesee!
很需要啊
为什么回复了还是看不见
一个评论审核,完全无法下载了。。坑爹了。。。
Demon,你的积分插件,如何让金币使用呢?比如说我要减少他的金币,如何操作,希望指点。
恩,好像放了好久了,加油
在哪下载?