
MyBuilder:把 WordPress 变成能赚钱的可视化站点,一套插件就够了
先说结论:如果你想要一个「后台拖拽就能改前台、自带付费下载和商城、还能卖授权」的资源站,MyBuilder 是目前我自己在用的方案。它不是一个主题,也不是一个页面编辑器,而是一整套站——插件管后端,Nuxt 管前台,两边打包成一个部署包发给客户。
这篇文章不讲虚的,直接告诉你它是什么、里面到底有什么、适合谁、怎么跑起来。文中每个数字都是我这台机器上数出来的,每条命令都实测过。
它解决的是什么问题
WordPress 本身很强,但真要拿它做一个「能收钱」的站点,你会连续撞上这几堵墙:
- 前台动不了。想改首页布局?要么改主题文件,要么装个页面构建器,然后发现它跟你的列表页、详情页、会员中心是割裂的。
- 变现要拼插件。下载扣次数、试读前两段、VIP 套餐、优惠券、提现……每一样都得找个插件,找个插件就多一份冲突风险。
- 前台慢。PHP 直出的页面,首屏打七八个查询,冷连接一个就 0.4 秒起。
- 想卖站卖不了。客户买了你的源码,装上去是个空壳,或者反过来——你把授权逻辑也发出去了。
MyBuilder 就是照着这四个痛点做的。它的思路很直接:后端仍然用 WordPress(内容、订单、用户这些成熟玩意儿别重造),前台换成 Nuxt SSR,中间用 WPGraphQL + REST 打通。你在 WP 后台拖拽布局,前台实时生效;用户在站点上下单付款,数据全在 WP 里。
核心能力:四块,每块都能单独用
1. 可视化构建器(对标 guaqi.com/builder)
这是我最常待的界面。左侧模块、中间画布、右侧属性,改完点「发布」前台立刻变。支持 PC / 移动双端分别编辑,列级投放(同一行不同列给不同模块),30 步撤销重做,Ctrl+Z 随手回退。
目前内置 47 个模块,覆盖一个资源站需要的全部位置:
AnchorNav Brand Breadcrumb Button Carousel
Categories Checkin Comments Countdown Custom
Docs Faq Form Hero Html
Image Info InteractionTabs Links
Members Nav Notice PageInfo PostDetail
PostDownloadBlock Posts Pricing Promotion
Related Search Shop SiteNavMenu Spacer
Stats Steps Table Tabs Text
TileZone Timeline TopicForm TopicTags Topics
UserCard Video VipPlans Wealth
每个模块都是独立 Vue 组件,带自己的字段 schema。想加自己的模块,往 components/modules/ 丢一个 .vue 就行,不用动框架。
2. 内容变现:从「能看」到「能收钱」
这块是重点,也是我自己搭站点时最省心的地方。
- 付费资源下载:每日下载额度按天计数,
INSERT IGNORE+ 条件原子自增,两个人同时点不会超发。详情页不返回下载地址,点了才按权限签发一个 15 分钟有效的一次性令牌——链接泄露了也没用。 - 付费阅读:可以手动用
[mb_protected]标,也可以按前两个 HTML 块自动试读,后面渐隐加一句「后面还有 80%」。读者能尝到味道,但白嫖不走。 - 商城 + 订单:商品、订单、优惠券、审核放款一条龙。支付走易支付(Epay),支持多种通道同时启用。
- VIP 会员:积分和真钱双轨。套餐支持二维码、图片、跳转 URL 三种支付展示,还有轮询到账——用户扫完码不用刷新,页面自己知道到账了。
- 积分 / 财富 / 签到 / 任务:一套成长体系,签到、做任务、评论都能拿积分,积分又能当钱花。
3. 社区
节点、话题、投稿、评论、审核,全都有。投稿走前台表单,登录用户直接发,管理员在后台审。用户等级、小黑屋(封禁)也带了。
4. 授权分发(这是卖源码的人最想要的)
你做了一套站点想卖,最麻烦的从来不是写代码,是怎么把东西交到客户手上还不把自己赔进去。MyBuilder 的做法是:
- License 签发 → 域名绑定 → 激活码,三层模型。一张 License 带 N 个域名席位,客户换域名就「换绑」,旧域名立即失效。
- 客户下载的包是部署套件:
mybuilder/(插件)+frontend/(Nuxt 前台产物)+DEPLOY.md(部署步骤)+.env.example(域名已按客户填好)。客户解压、装插件、Node 跑起来,三步。 - 授权销售那套代码(签发、激活码管理、产品中心)物理上不在客户包里。客户站上想自己签一张授权?没那个函数。
- 运行时有守卫:过期了不是打不开,是降级成只读,并提示去哪续费。数据不丢,客户体验不炸。
顺带说一句,客户包里的激活是联网换凭证的(HMAC 离线验签 90 天 + 定期回源续签),所以拿到 ZIP 也伪造不了激活。
技术架构:为什么是两件套
很多人第一反应是「一个插件搞定不行吗」。行,但你会失去前台。MyBuilder 的账是这么算的:
| 层 | 负责 | 为什么 |
|---|---|---|
| WordPress 插件 | REST / GraphQL 接口、后台管理、内容、订单、用户 | 这些是 WP 二十年攒下来的家底,重造纯属找罪 |
| Nuxt 3 SSR | 前台站点、构建器画布、SEO 输出 | SSR 出 HTML,蜘蛛吃得到;接口层有 swr 缓存,首屏从 3 秒降到 10ms 级 |
| 打包脚本 | 官方包 / 客户包分离、代码剥离 | 同一份代码,两个发行版,靠常量和文件清单区分 |
规模大概是这样(本地 wc -l 数出来的,不是官网抄的):
插件端 56 个类文件 / 26787 行 PHP / 115 个 REST 路由
前端端 47 个模块 / 18 个页面 / Nuxt 3 SSR
部署包 ~1.4MB 前端产物 + 插件,一份 ZIP 全含
前端产物是自包含的——不需要在客户服务器上 npm install,有 Node 18+ 就能跑。而且同一份产物可以发给所有客户:Nitro 的 runtimeConfig 支持运行时环境变量覆盖,打包时按客户域名生成 .env 就行,不用给每个客户单独构建一次。
快速上手:从下载到首页亮起来
客户拿到包之后是这样(这份 DEPLOY.md 是打进包里的,不是我现写的):
第一步,装插件。
解压部署包
→ 把 mybuilder/ 传到 WordPress 的 wp-content/plugins/
→ 后台启用「MyBuilder」
→ 插件用包里的 .license-seed.json 自动向官方换授权,不用手填激活码
第二步,配前端。
cd /www/wwwroot/frontend
cp .env.example .env # 域名已经按你的填好了
# 里面 NUXT_MB_CACHE_KEY 要填成后台「全局基础数据 → 缓存清除密钥」那个值
第三步,启动。这里有个坑务必注意——
# ★ 必须带 --env-file=.env
# Nitro 的生产模式不会自动读 .env,不带这个参数:
# 端口退回默认 3000、接口地址读不到、前台全白
node --env-file=.env .output/server/index.mjs
# 正式环境用 PM2 守护(SSH 一断裸跑就挂了)
pm2 start .output/server/index.mjs --name mybuilder --node-args="--env-file=.env"
pm2 save && pm2 startup
然后浏览器开你的域名,首页就亮了。后台构建器里拖模块、点发布,前台立即生效。
适合谁
- 想卖源码 / 卖模板的:授权分发这套是现成的,License、域名绑定、客户包、运行时守卫全有,你只管收钱和发货。
- 做资源下载站的:付费下载、试读、每日额度、VIP 套餐,直接可用,不用拼五个插件。
- 要 SEO 的:SSR 直出 HTML,canonical / sitemap / robots 都按站点配置生成,前台不是个 SPA 空壳。
- 不想被主题绑架的:布局在数据库里,后台拖拽即改,换前端不用重做内容。
不适合的也说清楚:如果你只要个博客,WP 默认主题就够了,别折腾。如果你要做纯原生 App 的后端,那 GraphQL 层能用,但前台这套你用不上。
在线看效果
- 前台示例(本站):https://8maoku.com/
- 会员套餐页:https://8maoku.com/vip
- 商城与订单:https://8maoku.com/shop
- 授权与下载(买家视角):https://8maoku.com/licenses
- 后端接口(可直接打开看 JSON):https://gou.mybuder.cn/wp-json/mybuilder/v1/license/guard
最后一句实话:这套东西我修了很久,从「下载插件是空的」到「上传产物一片空白」,坑基本都踩平了。你要拿它搭站或者卖授权,现在是能用的状态。有问题去社区发帖,我一般在。






