一、B2 主题的技术架构
B2 主题作为 WordPress 生态中的典型商业主题,其核心功能通过 PHP 后端逻辑与 JavaScript 前端交互协同实现。理解其函数与钩子(Hook)的设计逻辑,是进行二次开发的基础。
二、核心功能模块函数
1. 文件上传与资源管理(Modules/Common/FileUpload.php)
Text
checkFilePermission( $user_id, $file_type ); // 验证用户上传权限,根据等级限制类型与大小
uploadFile( $file_data, $upload_dir ); // 处理物理上传,生成唯一文件名并返回元数据
2. 用户与会员体系(Modules/Common/User.php)
Text
checkUserLevel( $user_id ); // 查询会员等级,返回可访问内容权限
updateUserPoints( $user_id, $points, $action ); // 更新积分并记录变动日志
3. 支付与订单系统(Modules/Common/Orders.php)
Text
createOrder( $product_id, $user_id, $price ); // 生成订单记录
callbackWechatPay( $data ); // 微信支付回调,验签并更新订单状态
三、常用 WordPress 钩子
Text
after_setup_theme // 主题初始化:菜单、缩略图支持
wp_enqueue_scripts // 前端资源加载(CSS/JS)
the_content // 过滤文章内容,可插入付费阅读模块
user_register // 用户注册时初始化会员基础数据
wp_handle_upload_prefilter // 上传前过滤文件数据,做类型与大小校验
wp_footer // 页脚注入 JS 交互逻辑
四、付费阅读的完整流程
以”付费阅读”为例,体现函数与钩子的协同:
后端:用户请求付费内容时,通过 user_has_purchased 钩子查询购买记录,未购买则返回付费表单。
前端:表单提交触发支付函数,调用微信/支付宝 JSAPI,支付成功后通知后端。
状态更新:后端回调函数更新订单状态,并通过 content_unlocked 钩子解除内容锁定,前端重新渲染完整内容。
五、二开建议
在子主题的 functions.php 中通过 add_filter / add_action 挂载钩子,尽量不直接修改父主题文件;涉及核心类时,先阅读对应 Modules 源码确认方法签名,避免与主题内部逻辑冲突。

