先说结论这个插件解决的是两类很实际的问题:一是积分只进不出——用户攒了一堆分没处花,通货膨胀;二是内容没热度——老文章没人点,越冷越没人点。它的做法很取巧:把「押积分」和「站内真实数据」绑在一起,让你站里的下载量、浏览量自己变成竞猜标的。题目不用你出,数据不用你填,到点自动开奖。
它不是赌博:积分只能靠站内行为获得、不能提现、不能兑换现金,押注本身也是零和分池——你赢的钱来自别人输的注,平台只从池子里抽一点点直接销毁。这一点在文末「合规提醒」里还要再说一遍。
一、它在你的积分体系里扮演什么角色
你可以把它理解成一个带悬念的积分回收池,同时顺带给内容做了一次「猜涨跌」式的引流:
| 它带来什么 | 怎么实现的 |
|---|---|
| 回收积分 | 押注的积分从用户余额扣走后进入奖池;平台抽水部分直接销毁,不回填给任何人 |
| 制造回访 | 题目有 7 天有效期,用户在头条、在讨论区、在群里都会惦记「我那题开奖没」 |
| 给老内容引流 | 题目文案直接带着文章标题出现(例:《PHP 8.3 新特性盘点与升级踩坑记录》的浏览量在 2026-10-11 前能否突破 2250?),看题的人顺手就点进去了 |
| 零人工运营 | 题目从近 90 天的已发布文章里自动挑,指标自己抓,到点自己开奖,不需要你每天维护一张表格 |
二、题目从哪来:自动挂站内真实数据
出题逻辑是「先看指标,再定目标,最后定期限」,全程服务端完成。
1. 挑哪篇文章、挑哪个指标
系统只看近 90 天内发布的文章(单次最多扫 12 篇),按下面的优先级挑一个「够格」的指标:
| 优先级 | 指标 | 够格门槛(现值) |
|---|---|---|
| 1 | 下载量 | ≥ 20 |
| 2 | 浏览量 | ≥ 300 |
| 3 | 收藏数 | ≥ 5 |
优先挂下载量是刻意的:下载量增长慢、可预测性好,适合做「能不能突破」的题;浏览量波动大,只在下载量不够时才用。三个都不够格的文章会被跳过,不会硬凑一道没法玩的题。
2. 目标值怎么定
目标值 = 现值 × 1.5 向上取整到 10,且至少比现值多 10。举两个真实例子:
现值 386 → 386 × 1.5 = 579 → 向上取整到 10 → 目标 580
现值 25 → 25 × 1.5 = 37.5 → 但至少 +10 → 目标 40
这个系数是有意留白的:定太低(比如 ×1.05)就变成稳赢送分,定太高(×3)就没人敢押「能突破」,两边会严重失衡。×1.5 意味着题目天然带一点分歧——这正是奖池玩法需要的。
3. 有效期和题量
每道题有效期 7 天,截止时间落在当天 23:59。页面上同时进行的题默认 3 道(最多可调到 5 道),出题动作有 30 分钟节流,不会每次有人刷页面就去查一遍数据库。
三、钱怎么分:奖池分成,平台抽水直接销毁
这个模型叫 parimutuel(同注分彩 / 奖池分成),跟赛马、指数类玩法是同一套:不设固定赔率,赔率由两边押注量实时算出来。
1. 三步算法
抽水 rake = floor(总奖池 × 抽水% / 100) ← 销毁,谁都不拿
可分配 distributable = 总奖池 − rake
该边倍数 ratio = floor(distributable × 100 / 该边总押注) ← 单位:%,除 100 就是倍数
派彩 payout = floor(我的押注 × distributable / 该边总押注)
注意三个细节:
- 抽水是销毁,不是平台收入。这部分积分直接从系统里消失,所以它天然是通缩的——这正是「回收积分」的地方。
- 取整一律向下取整(floor),不会出现派彩总额超过奖池的情况,平台不可能倒贴。
- 两边都有人押,赢家池必然大于 0,所以不存在「押中了却没人可分」的场景。
2. 拿一道真题手算一遍
假设某题两边押注如下(抽水按默认 5%):
| 选项 | 押注总额 | 人数 | 实时倍数 |
|---|---|---|---|
| 能突破 | 200 积分 | 3 人 | 1.52 倍 |
| 突破不了 | 120 积分 | 2 人 | 2.53 倍 |
总奖池 320 → 抽水 floor(320 × 5%) = 16(销毁)
可分配 320 − 16 = 304
「能突破」倍数 = floor(304 × 100 / 200) = 152 → 1.52 倍
「突破不了」倍数 = floor(304 × 100 / 120) = 253 → 2.53 倍
我押了 10 分在「突破不了」,结果没突破:
派彩 = floor(10 × 304 / 120) = 25 分 → 投入 10,拿回 25,净赚 15
如果我押在「能突破」:派彩 = 0,那 10 分进了赢家池
这就是为什么押注少的那个选项倍率高——人少,分的人少。也请把界面上那句提示当回事:押赢也可能小亏,如果很多人和你押同一边,倍数会被摊薄。
3. 只有一边有人押怎么办
到点结算时如果发现只有一边有人押(另一边 0 分 0 人),这题直接判作废,全额原路退回,一分抽水都不抽。这条是必须的:没有对手盘就不存在「分输家的注」,硬开奖等于凭空吞掉用户积分。
四、界面上你会看到什么
模块拖进页面后长这样(自上而下):
| 区块 | 内容 |
|---|---|
| 顶部状态条 | 「网站积分」当前余额、「待开奖」我还没结算的注单数 |
| 题卡头 | 指标标签(下载量 / 浏览量 / 收藏数)、还剩几天、截止日期 |
| 题面 | 《文章标题》的某项指标在 X 月 X 日前能否突破 N? |
| 进度区 | 当前值 / 目标值 / 还差多少 + 一条进度条,一眼看出离目标多远 |
| 奖池占比条 | 红蓝两段,按两边押注金额的比例分 |
| 两个选项卡 | 「能突破」/「突破不了」:各显示押注总额、人数、实时分润倍数;自己押过的那边会打上「我的注」标记 |
| 押注行 | 点选项后展开金额档位(5 / 10 / 20 分,按剩余额度自动收敛)、今日还能押多少、收起按钮 |
| 我的注单 | 我这题押了哪边、押了多少 |
| 已开奖区 | 最近 8 条:指标标签、突破了没突破、开奖时的数值、总奖池、我的盈亏(押中 +N / 未中 −N / 已退回) |
| 战绩四格 | 累计押注、累计派彩、净收益、参与/押中次数 |
| 规则区 | 把分池规则、额度上限、抽水比例和风险提示写在页面上,用户不用问 |
游客看到的是「登录后即可押注」和一个「去登录」按钮,点了会拉起站点自己的登录弹窗,不会跳走。
五、防刷与公平:几个口子都堵上了
| 风险 | 处理方式 |
|---|---|
| 连点重复扣分 / 重复上分 | 每次押注带一次性 requestId,10 分钟幂等窗口内同一个 id 只生效一次 |
| 并发超押(余额 10 分却押中两次) | 双层命名锁「先锁题、再锁用户」,锁内重新读余额与额度再扣分 |
| 扣分成功但写库失败 | 写注单失败立即原路退款,不会出现「钱扣了没注单」 |
| 单人额度失控 | 单次最低 5 分、单题每人上限 20 分、每人每天上限 60 分(都是服务端权威值) |
| 改价 / 改抽水 | 所有钱规则只读服务端配置,浏览器里改模块设置改不动价格——这条是安全设计,下面第八节细说 |
| 开奖时指标读不到 | 指标未知 = 不猜:宁可推迟开奖,也不拿一个错误的数字判定输赢 |
六、到点自动开奖的三重保障
「自动开奖」最怕的是错过时机或者开一半挂掉,所以这里做了三层:
- 定时器:每一题创建时,就按它的截止时间挂一个单次计划任务(WP-Cron)。
- 惰性兜底:只要有人打开页面读数据,系统就顺手检查一遍有没有到点没开的题,有就补开。所以你就算站点的计划任务不准,也不会拖很久。
- 派彩补发:发钱失败(比如某个用户写积分时出错)时,注单保持未结清状态,下一次读数据时再补一次,直到发成功为止。
整个结算过程带锁、锁内重新读题状态,所以重复触发也不会重复派彩——同一道题开一百次,用户拿到的钱还是那么多。
七、安装(按顺序做)
拿到安装包:guaqi-bet-pool-1.0.1.zip(40 KB)。
- 上传:进 WordPress 后台的瓜奇插件管理页上传 ZIP。首次上传只安装,不自动启用。
- 开开关:在插件列表里,把「积分竞猜池」在你要用的那个前端网站上启用(按前端网站独立启停)。
- 拖到页面上:进 builder,从模块里把「积分竞猜池」拖进任意页面(它是模块型插件,不是表单型,可以放在首页、文章页、任意布局区块里)。
- 点发布:这一步务必别漏——builder 里改完必须点「发布」,前台才会生效。
- 验收:见下一节。
八、装完怎么验收
用带密钥的调试接口一次看完全部体检信息(当前配置、题目列表、池子与注单、五类指标读数探针):
mutation {
gqBetPoolDebug(input: { key: "gqbet-diag-4c9a72e15f38", action: "status" }) {
result
}
}
action 还支持三个运维动作,省得你去数据库里手动改:
| action | 作用 |
|---|---|
status(默认) |
体检:读一遍配置、题目、池子、注单,并返回五类指标的实时读数 |
generate |
忽略节流,立刻跑一次出题(刚装完想马上看到题就用它) |
settle |
立刻跑一次到期结算(想验证开奖流程是否正常) |
config |
改钱规则,可带 maxStake / dailyCap / rakePercent |
mutation {
gqBetPoolDebug(input: {
key: "gqbet-diag-4c9a72e15f38"
action: "config"
maxStake: 20
dailyCap: 60
rakePercent: 5
}) {
result
}
}
另外两个前端调用的接口是 gqBetPoolState(读状态)和 gqBetPoolBet(押注),不需要密钥,走的是正常的登录身份校验。
九、什么能调,什么不能调
这里有个刻意的分工,关系到你的站会不会被人钻空子:
| 配置项 | 在哪改 | 默认值 | 硬上限 |
|---|---|---|---|
| 同时进行的题数 | builder 里的模块设置 | 3 | 5 |
| 自动出题开关 | builder 里的模块设置 | 开启 | — |
| 是否显示已开奖区 | builder 里的模块设置 | 显示 | — |
| 单题押注上限 | 仅服务端(调试接口 / 过滤器) | 20 分 | 100 分 |
| 每人每日上限 | 仅服务端 | 60 分 | 500 分 |
| 平台抽水比例 | 仅服务端 | 5% | 20% |
| 单次最低押注 | 固定 | 5 分 | — |
为什么钱规则不给 builder 改?因为模块设置是浏览器可以伪造的。如果押注上限、抽水比例从页面上传过来,任何人改一下请求参数就能把自己的押注上限调到 99999、把抽水调到 0。所以钱规则一律只认服务端配置,而且读出来之后还要再夹一次天花板(100 / 500 / 20%)——就算有人能改数据库,也不可能把抽水调到 100% 去收割用户。builder 里能调的只有「展示类」设置。
想用代码接管钱规则也可以,挂过滤器即可:
add_filter('guaqi_bet_pool_rules', function ($rules) {
$rules['maxStake'] = 30; // 单题上限(服务端仍会夹到 100)
$rules['dailyCap'] = 100; // 每人每日上限(仍会夹到 500)
$rules['rakePercent'] = 3; // 抽水(仍会夹到 20)
return $rules;
});
十、常见问题
Q:装了但页面上什么都没有?
按顺序查三步:插件在你这个前端网站上是不是启用状态 → builder 里模块有没有拖进页面 → builder 有没有点「发布」。三步缺一步都不显示。刚装完还没题的话,用 action: "generate" 跑一次出题。
Q:题目是空的 / 没有新题?
出题有门槛:文章必须是近 90 天内发布,且下载量 ≥ 20 或浏览量 ≥ 300 或收藏数 ≥ 5。新站数据少的时候可能暂时凑不出题——这是正常的,等数据涨上来自然会出。
Q:能自己定赔率吗?
不需要也不能。这个玩法不设固定赔率,倍数完全由两边押注量实时算出来(人少的一边倍率高)。你要调的是「押注上限」和「抽水」,在调试接口的 action: "config" 里改。
Q:抽水那部分积分去哪了?
销毁。不写进任何人的账户,也不进平台账。这是有意的——这个插件的定位就是通缩型回收,抽水比例越高,站内积分总量收缩越快。但别贪,默认 5% 已经够用,调到 20% 用户会算得出来。
Q:会不会有人刷?
几个口子都堵了:押注带一次性 requestId(10 分钟内重复请求只生效一次)、双层锁内重读余额、扣分成功但写注单失败会自动退款、单人单题和单日额度都是服务端权威值且改不动。另外积分本身不能提现,刷分的动机也小很多。
Q:升级会不会丢数据?
不会。题目、注单、额度、战绩都存在服务端,覆盖安装新版本即可。1.0.1 修的是前台文案显示问题(题干里的文章标题、剩余天数等内容曾显示为空),升级后自动正常。
Q:游客点「去登录」没反应?
1.0.1 版本已确认这个按钮会真的拉起站点登录弹窗(沿用平台标准登录桥)。如果你的前端域名和源站不是同一个域,需要在 nginx 上把 /graphql 反代到源站——这是本站踩过的坑,写在这里省你一轮排查。
十一、给站长的两句实话
第一,别指望它单枪匹马解决通胀。它一次押注最多 20 分、一天最多 60 分,回收力度是温和的。真要收缩站内积分,得配合「消耗品」(装扮、道具、下载券)一起上,竞猜池负责的是让积分有地方去、还带回访动力。
第二,题目的价值在于「真」。这里的数字全部来自站内真实数据,用户是可以自己去验证的——这正是它区别于「后台随便填个数字开盘」的地方。别去改指标、别去伪造开奖,一旦被用户发现数字不对,这个玩法就废了。
合规提醒:这个玩法的积分只能靠站内行为获得,不可提现、不可兑换现金、不可转让;页面上的规则(分池方式、抽水比例、额度上限、单边退款)建议保持可见;不要引入付费购买积分再参与竞猜的通路。积分透明 + 没有现金出口 + 规则公示,这三条能挡掉绝大多数麻烦。
- 蓝奏云该下载点需要登录后确认
可用性由站点定时核验,最近一次 2026-10-07 09:20。若某个下载点不可用,可在评论区告知,我们会尽快替换。