概述
本文档详细记录了子比主题 (Zibll) 中可用的各种资源,包括钩子、函数、类、数据库表、配置选项等,供插件开发使用。
一、核心钩子 (Hooks)
1.1 Action Hooks (动作钩子)
支付相关钩子
– payment_order_success – 支付成功时触发
– order_created – 订单创建时触发
– order_closed – 订单关闭时触发
– order_refunded – 订单退款时触发
– zib_auto_clear_order – 自动清理订单时触发
用户相关钩子
– user_register – 用户注册时触发
– user_checkined – 用户签到完成时触发
– like-posts – 用户点赞文章时触发
– favorite-posts – 用户收藏文章时触发
– follow-user – 用户关注其他用户时触发
内容相关钩子
– save_post – 保存文章时触发
– comment_post – 发表评论时触发
– comment_unapproved_to_approved – 评论审核通过时触发
– like-comment – 点赞评论时触发
社区论坛钩子
– bbs_score_extra – 帖子被加分时触发
– bbs_posts_essence_set – 帖子设为精华时触发
– posts_is_hot – 帖子成为热门时触发
– plate_is_hot – 版块成为热门时触发
– comment_is_hot – 评论成为热门时触发
– answer_adopted – 回答被采纳时触发
提现相关钩子
– user_apply_withdraw – 用户申请提现时触发
– withdraw_process_newmsg – 提现处理有新消息时触发
– withdraw_process – 提现处理时触发
其他重要钩子
– admin_init – 后台初始化时触发
– template_redirect – 模板重定向时触发
– wp_footer – 页面底部输出时触发
– wp_login – 用户登录时触发
1.2 Filter Hooks (过滤器钩子)
支付相关过滤器
– zibpay_payment_methods – 支付方式过滤器
– zibpay_is_allow_balance_pay – 是否允许余额支付
– zibpay_is_allow_card_pass_pay – 是否允许卡密支付
– pay_order_price_is_allow_0 – 是否允许订单金额为0
用户中心过滤器
– user_center_page_sidebar – 用户中心侧边栏
– user_ctnter_main_tabs_array – 用户中心主标签页
– main_user_tab_content_* – 用户中心各标签页内容
– user_order_list_card – 用户订单列表卡片
– user_order_details_modal – 用户订单详情弹窗
内容显示过滤器
– zibpay_posts_paid_box – 已付费文章显示框
– zibpay_posts_pay_box – 付费文章支付框
– zibpay_is_show_paybutton – 是否显示支付按钮
作者页面过滤器
– author_header_more_btn – 作者头部更多按钮
– author_header_identity – 作者身份标识
– author_main_tabs_array – 作者主页标签页
– author_main_tab_* – 作者主页各标签页内容
– author_favorite_lists_* – 作者收藏列表
二、核心函数 (Functions)
2.1 主题核心函数
– _pz() – 获取主题选项值
– zib_get_option() – 获取主题选项值
– zib_get_admin_csf_url() – 获取主题设置链接
– zib_send_json_success() – 发送成功JSON响应
– zib_send_json_error() – 发送错误JSON响应
2.2 支付相关函数
– zibpay_initiate_pay() – 发起支付
– zibpay_get_order_status() – 获取订单状态
– zibpay_get_user_balance() – 获取用户余额
– zibpay_get_user_points() – 获取用户积分
– zibpay_get_user_vip_level() – 获取用户VIP等级
2.3 用户相关函数
– zib_get_user_center_url() – 获取用户中心链接
– zib_get_user_cover_img() – 获取用户封面图片
– zib_get_user_desc() – 获取用户描述
– zib_get_author_header_btns() – 获取作者头部按钮
2.4 内容相关函数
– zib_get_main_tab_nav() – 获取主标签页导航
– zib_get_ajax_ajaxpager_one_centent() – 获取AJAX分页内容
– zib_get_time_where_sql() – 获取时间条件SQL
2.5 工具函数
– zib_require() – 安全引入文件
– zib_mail_to_admin() – 发送邮件给管理员
– zib_get_svg() – 获取SVG图标
三、核心类 (Classes)
3.1 订单管理类
“php class ZibOrder { // 订单管理核心类 public static function create_db() // 创建订单表 public static function get_row() // 获取订单行 public static function update_order() // 更新订单 public static function payment_order() // 支付订单 public static function close_order() // 关闭订单 public static function refund_order() // 退款订单 } “
3.2 卡密管理类
“php class ZibCardPass { // 卡密管理类 public static function create_db() // 创建卡密表 public static function get_row() // 获取卡密行 public static function update() // 更新卡密 public static function use_card() // 使用卡密 } “
3.3 消息管理类
“php class ZibMsg { // 消息管理类 public static function create_db() // 创建消息表 public static function add() // 添加消息 public static function get_row() // 获取消息行 public static function get_count() // 获取消息数量 } “
3.4 数据库操作类
“php class ZibDb { // 数据库操作类 public static function name() // 指定表名 public static function where() // 添加条件 public static function get() // 获取数据 public static function update() // 更新数据 public static function insert() // 插入数据 public static function delete() // 删除数据 } “
四、数据库表结构
4.1 核心数据表
zibpay_order (订单表)
– id – 订单ID
– user_id – 用户ID
– order_num – 订单号
– order_type – 订单类型
– order_price – 订单金额
– status – 订单状态
– create_time – 创建时间
– pay_time – 支付时间
zibpay_order_meta (订单元数据表)
– meta_id – 元数据ID
– order_id – 订单ID
– meta_key – 元数据键
– meta_value – 元数据值
zibpay_card_password (卡密表)
– id – 卡密ID
– card – 卡号
– password – 密码
– type – 卡密类型
– status – 状态
– create_time – 创建时间
zib_message (消息表)
– id – 消息ID
– send_user – 发送用户
– receive_user – 接收用户
– type – 消息类型
– title – 消息标题
– content – 消息内容
– status – 消息状态
五、主题配置选项
5.1 主要配置分类
– 全局&功能 – 基础主题设置
– 页面&显示 – 页面布局和显示设置
– 文章&列表 – 文章相关设置
– 功能&权限 – 功能权限控制
– 用户&互动 – 用户相关设置
– 支付&付费 – 支付系统设置
– 商城&商品 – 商城功能设置
– 社区&论坛 – 社区论坛设置
– 扩展&增强 – 扩展功能设置
5.2 重要配置函数
– _pz(‘option_name’) – 获取配置值
– zib_get_option(‘option_name’) – 获取配置值
六、AJAX接口
6.1 支付相关AJAX
– wp_ajax_submit_order – 提交订单
– wp_ajax_nopriv_submit_order – 未登录用户提交订单
– wp_ajax_zibpay_file_upload – 文件上传
6.2 用户相关AJAX
– wp_ajax_user_apply_withdraw – 用户申请提现
– wp_ajax_zib_ajax_get_gzh_open_id – 获取微信公众号OpenID
七、常量定义
7.1 主题常量
– ZIB_TEMPLATE_DIRECTORY_URI – 主题目录URI
– ZIB_ROOT_PATH – 主题根路径
– ZIB_TEMP_DIR – 临时目录
– THEME_VERSION – 主题版本
7.2 支付相关常量
– 订单状态常量
– 支付方式常量
– 卡密类型常量
八、开发注意事项
8.1 性能优化
– 使用缓存机制减少数据库查询
– 合理使用静态变量缓存重复数据
– 避免在循环中执行数据库操作
8.2 安全性
– 所有用户输入必须进行验证和转义
– 使用WordPress提供的安全函数
– 遵循最小权限原则
8.3 兼容性
– 确保代码与WordPress核心兼容
– 考虑不同PHP版本的兼容性
– 测试在不同环境下的运行情况
九、性能优化机制分析
9.1 缓存机制
对象缓存 (Object Cache)
子比主题广泛使用WordPress对象缓存系统来减少数据库查询:
“`php
// 缓存读取模式
$cache_num = wp_cache_get($post_id, ‘post_pay_cuont’, true);
if (false !== $cache_num) {
return $cache_num;
}
// 缓存写入模式
wp_cache_set($post_id, $cuont, ‘post_pay_cuont’);
// 缓存删除模式
wp_cache_delete($order_id, ‘zibpay_ordermeta’);
“`
主要缓存组:
– post_pay_cuont – 文章支付次数缓存
– user_order_data – 用户订单数据缓存
– zibpay_ordermeta – 订单元数据缓存
– zib_cache_group – 通用缓存组
– page_url – 页面URL缓存
– zib_option_meta_data – 选项元数据缓存
静态变量缓存 (Static Variable Cache)
对于频繁调用的函数,使用静态变量缓存:
“`php
// 静态变量缓存示例
function zibpay_get_pay_mark()
{
// 声明静态变量,加速获取
static $pay_mark = null;
if (!$pay_mark) {
$pay_mark = _pz(‘pay_mark’) ?: ‘¥’;
}
return $pay_mark;
}
// 多维静态缓存
function zibpay_get_user_income_data($user_id, $status = 1)
{
// 静态缓存
static $this_data = null;
if (isset($this_data[$user_id][$status])) {
return $this_data[$user_id][$status];
}
// … 数据库查询逻辑
$this_data[$user_id][$status] = $result;
return $result;
}
“`
9.2 数据库优化
索引设计策略
子比主题为关键查询字段创建了复合索引:
— 订单表索引设计
PRIMARY KEY (id),
KEY user_id (user_id),
KEY post_id (post_id),
KEY order_num (order_num),
KEY status (status),
KEY order_type (order_type),
KEY payment_id (payment_id),
KEY pay_time (pay_time, pay_type, pay_price, id),
KEY post_author (post_author, referrer_id, income_status, rebate_status, id)
索引优化原则:
– 为WHERE条件中的字段创建索引
– 为JOIN操作中的字段创建索引
– 为ORDER BY和GROUP BY中的字段创建索引
– 使用复合索引覆盖常见查询模式
查询优化策略
- 避免全表扫描 – 通过索引优化查询条件
- 减少JOIN操作 – 通过合理的数据结构设计
- 分页查询优化 – 使用LIMIT和OFFSET
- 批量操作优化 – 减少单次数据库交互 9.3 内容采集性能影响分析 正常发布 vs 内容采集的性能差异
正常发布流程的数据依赖:
- 分类标签统计更新 – 自动更新分类、标签的文章总数和阅读数
- 作者数据更新 – 更新作者热度、积分、经验值等
- 图片数据查询 – 处理文章内图片的元数据
- 缓存系统更新 – 更新相关缓存数据
- 关联数据同步 – 同步评论、点赞、收藏等关联数据
内容采集的问题:
- 依赖数据缺失 – 采集内容缺少完整的依赖数据链
- 缓存不一致 – 缓存数据与实际数据不匹配
- 查询性能下降 – 需要额外的数据库查询来补全数据
- 统计不准确 – 分类、作者等统计数据不完整 性能优化建议
对于插件开发:
- 实现完整的数据依赖链
– 在采集时补全分类、标签的统计数据
– 维护作者相关数据的完整性
– 确保图片等媒体文件的元数据完整 - 优化缓存策略
– 在数据变更时及时更新相关缓存
– 使用合理的缓存过期策略
– 避免缓存穿透和雪崩 - 数据库优化
– 为采集相关的查询创建合适的索引
– 使用批量操作减少数据库压力
– 实现数据预加载机制 - 异步处理
– 将非关键的数据处理任务异步化
– 使用队列系统处理批量操作
– 实现增量更新机制 9.4 扩展开发建议 钩子使用建议
– 优先使用主题提供的钩子进行扩展
– 避免直接修改核心文件
– 合理设置钩子优先级 函数调用建议
– 使用主题提供的工具函数
– 避免重复造轮子
– 遵循主题的编码规范 数据库操作建议
– 使用主题提供的数据库类
– 避免直接操作数据库表
– 注意数据一致性和完整性
—
本文档最后更新:2025-10-31
适用于子比主题版本:8.3
一、核心钩子 (Hooks)
1.1 Action Hooks (动作钩子)
支付相关钩子
– `payment_order_success` – 支付成功时触发
– `order_created` – 订单创建时触发
– `order_closed` – 订单关闭时触发
– `order_refunded` – 订单退款时触发
– `zib_auto_clear_order` – 自动清理订单时触发
用户相关钩子
– `user_register` – 用户注册时触发
– `user_checkined` – 用户签到完成时触发
– `like-posts` – 用户点赞文章时触发
– `favorite-posts` – 用户收藏文章时触发
– `follow-user` – 用户关注其他用户时触发
内容相关钩子
– `save_post` – 保存文章时触发
– `comment_post` – 发表评论时触发
– `comment_unapproved_to_approved` – 评论审核通过时触发
– `like-comment` – 点赞评论时触发
社区论坛钩子
– `bbs_score_extra` – 帖子被加分时触发
– `bbs_posts_essence_set` – 帖子设为精华时触发
– `posts_is_hot` – 帖子成为热门时触发
– `plate_is_hot` – 版块成为热门时触发
– `comment_is_hot` – 评论成为热门时触发
– `answer_adopted` – 回答被采纳时触发
提现相关钩子
– `user_apply_withdraw` – 用户申请提现时触发
– `withdraw_process_newmsg` – 提现处理有新消息时触发
– `withdraw_process` – 提现处理时触发
其他重要钩子
– `admin_init` – 后台初始化时触发
– `template_redirect` – 模板重定向时触发
– `wp_footer` – 页面底部输出时触发
– `wp_login` – 用户登录时触发
1.2 Filter Hooks (过滤器钩子)
支付相关过滤器
– `zibpay_payment_methods` – 支付方式过滤器
– `zibpay_is_allow_balance_pay` – 是否允许余额支付
– `zibpay_is_allow_card_pass_pay` – 是否允许卡密支付
– `pay_order_price_is_allow_0` – 是否允许订单金额为0
用户中心过滤器
– `user_center_page_sidebar` – 用户中心侧边栏
– `user_ctnter_main_tabs_array` – 用户中心主标签页
– `main_user_tab_content_*` – 用户中心各标签页内容
– `user_order_list_card` – 用户订单列表卡片
– `user_order_details_modal` – 用户订单详情弹窗
内容显示过滤器
– `zibpay_posts_paid_box` – 已付费文章显示框
– `zibpay_posts_pay_box` – 付费文章支付框
– `zibpay_is_show_paybutton` – 是否显示支付按钮
作者页面过滤器
– `author_header_more_btn` – 作者头部更多按钮
– `author_header_identity` – 作者身份标识
– `author_main_tabs_array` – 作者主页标签页
– `author_main_tab_*` – 作者主页各标签页内容
– `author_favorite_lists_*` – 作者收藏列表
二、核心函数 (Functions)
2.1 主题核心函数
– `_pz()` – 获取主题选项值
– `zib_get_option()` – 获取主题选项值
– `zib_get_admin_csf_url()` – 获取主题设置链接
– `zib_send_json_success()` – 发送成功JSON响应
– `zib_send_json_error()` – 发送错误JSON响应
2.2 支付相关函数
– `zibpay_initiate_pay()` – 发起支付
– `zibpay_get_order_status()` – 获取订单状态
– `zibpay_get_user_balance()` – 获取用户余额
– `zibpay_get_user_points()` – 获取用户积分
– `zibpay_get_user_vip_level()` – 获取用户VIP等级
2.3 用户相关函数
– `zib_get_user_center_url()` – 获取用户中心链接
– `zib_get_user_cover_img()` – 获取用户封面图片
– `zib_get_user_desc()` – 获取用户描述
– `zib_get_author_header_btns()` – 获取作者头部按钮
2.4 内容相关函数
– `zib_get_main_tab_nav()` – 获取主标签页导航
– `zib_get_ajax_ajaxpager_one_centent()` – 获取AJAX分页内容
– `zib_get_time_where_sql()` – 获取时间条件SQL
2.5 工具函数
– `zib_require()` – 安全引入文件
– `zib_mail_to_admin()` – 发送邮件给管理员
– `zib_get_svg()` – 获取SVG图标
三、核心类 (Classes)
3.1 订单管理类
“`php
class ZibOrder {
// 订单管理核心类
public static function create_db() // 创建订单表
public static function get_row() // 获取订单行
public static function update_order() // 更新订单
public static function payment_order() // 支付订单
public static function close_order() // 关闭订单
public static function refund_order() // 退款订单
}
“`
3.2 卡密管理类
“`php
class ZibCardPass {
// 卡密管理类
public static function create_db() // 创建卡密表
public static function get_row() // 获取卡密行
public static function update() // 更新卡密
public static function use_card() // 使用卡密
}
“`
3.3 消息管理类
“`php
class ZibMsg {
// 消息管理类
public static function create_db() // 创建消息表
public static function add() // 添加消息
public static function get_row() // 获取消息行
public static function get_count() // 获取消息数量
}
“`
3.4 数据库操作类
“`php
class ZibDb {
// 数据库操作类
public static function name() // 指定表名
public static function where() // 添加条件
public static function get() // 获取数据
public static function update() // 更新数据
public static function insert() // 插入数据
public static function delete() // 删除数据
}
“`
四、数据库表结构
4.1 核心数据表
zibpay_order (订单表)
– `id` – 订单ID
– `user_id` – 用户ID
– `order_num` – 订单号
– `order_type` – 订单类型
– `order_price` – 订单金额
– `status` – 订单状态
– `create_time` – 创建时间
– `pay_time` – 支付时间
zibpay_order_meta (订单元数据表)
– `meta_id` – 元数据ID
– `order_id` – 订单ID
– `meta_key` – 元数据键
– `meta_value` – 元数据值
zibpay_card_password (卡密表)
– `id` – 卡密ID
– `card` – 卡号
– `password` – 密码
– `type` – 卡密类型
– `status` – 状态
– `create_time` – 创建时间
zib_message (消息表)
– `id` – 消息ID
– `send_user` – 发送用户
– `receive_user` – 接收用户
– `type` – 消息类型
– `title` – 消息标题
– `content` – 消息内容
– `status` – 消息状态
五、主题配置选项
5.1 主要配置分类
– **全局&功能** – 基础主题设置
– **页面&显示** – 页面布局和显示设置
– **文章&列表** – 文章相关设置
– **功能&权限** – 功能权限控制
– **用户&互动** – 用户相关设置
– **支付&付费** – 支付系统设置
– **商城&商品** – 商城功能设置
– **社区&论坛** – 社区论坛设置
– **扩展&增强** – 扩展功能设置
5.2 重要配置函数
– `_pz(‘option_name’)` – 获取配置值
– `zib_get_option(‘option_name’)` – 获取配置值
六、AJAX接口
6.1 支付相关AJAX
– `wp_ajax_submit_order` – 提交订单
– `wp_ajax_nopriv_submit_order` – 未登录用户提交订单
– `wp_ajax_zibpay_file_upload` – 文件上传
6.2 用户相关AJAX
– `wp_ajax_user_apply_withdraw` – 用户申请提现
– `wp_ajax_zib_ajax_get_gzh_open_id` – 获取微信公众号OpenID
七、常量定义
7.1 主题常量
– `ZIB_TEMPLATE_DIRECTORY_URI` – 主题目录URI
– `ZIB_ROOT_PATH` – 主题根路径
– `ZIB_TEMP_DIR` – 临时目录
– `THEME_VERSION` – 主题版本
7.2 支付相关常量
– 订单状态常量
– 支付方式常量
– 卡密类型常量
八、开发注意事项
8.1 性能优化
– 使用缓存机制减少数据库查询
– 合理使用静态变量缓存重复数据
– 避免在循环中执行数据库操作
8.2 安全性
– 所有用户输入必须进行验证和转义
– 使用WordPress提供的安全函数
– 遵循最小权限原则
8.3 兼容性
– 确保代码与WordPress核心兼容
– 考虑不同PHP版本的兼容性
– 测试在不同环境下的运行情况
九、性能优化机制分析
9.1 缓存机制
对象缓存 (Object Cache)
子比主题广泛使用WordPress对象缓存系统来减少数据库查询:
“`php
// 缓存读取模式
$cache_num = wp_cache_get($post_id, ‘post_pay_cuont’, true);
if (false !== $cache_num) {
return $cache_num;
}
// 缓存写入模式
wp_cache_set($post_id, $cuont, ‘post_pay_cuont’);
// 缓存删除模式
wp_cache_delete($order_id, ‘zibpay_ordermeta’);
“`
**主要缓存组:**
– `post_pay_cuont` – 文章支付次数缓存
– `user_order_data` – 用户订单数据缓存
– `zibpay_ordermeta` – 订单元数据缓存
– `zib_cache_group` – 通用缓存组
– `page_url` – 页面URL缓存
– `zib_option_meta_data` – 选项元数据缓存
静态变量缓存 (Static Variable Cache)
对于频繁调用的函数,使用静态变量缓存:
“`php
// 静态变量缓存示例
function zibpay_get_pay_mark()
{
// 声明静态变量,加速获取
static $pay_mark = null;
if (!$pay_mark) {
$pay_mark = _pz(‘pay_mark’) ?: ‘¥’;
}
return $pay_mark;
}
// 多维静态缓存
function zibpay_get_user_income_data($user_id, $status = 1)
{
// 静态缓存
static $this_data = null;
if (isset($this_data[$user_id][$status])) {
return $this_data[$user_id][$status];
}
// … 数据库查询逻辑
$this_data[$user_id][$status] = $result;
return $result;
}
“`
9.2 数据库优化
索引设计策略
子比主题为关键查询字段创建了复合索引:
— 订单表索引设计
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `post_id` (`post_id`),
KEY `order_num` (`order_num`),
KEY `status` (`status`),
KEY `order_type` (`order_type`),
KEY `payment_id` (`payment_id`),
KEY `pay_time` (`pay_time`, `pay_type`, `pay_price`, `id`),
KEY `post_author` (`post_author`, `referrer_id`, `income_status`, `rebate_status`, `id`)
**索引优化原则:**
– 为WHERE条件中的字段创建索引
– 为JOIN操作中的字段创建索引
– 为ORDER BY和GROUP BY中的字段创建索引
– 使用复合索引覆盖常见查询模式
#### 查询优化策略
1. **避免全表扫描** – 通过索引优化查询条件
2. **减少JOIN操作** – 通过合理的数据结构设计
3. **分页查询优化** – 使用LIMIT和OFFSET
4. **批量操作优化** – 减少单次数据库交互
9.3 内容采集性能影响分析
正常发布 vs 内容采集的性能差异
**正常发布流程的数据依赖:**
1. **分类标签统计更新** – 自动更新分类、标签的文章总数和阅读数
2. **作者数据更新** – 更新作者热度、积分、经验值等
3. **图片数据查询** – 处理文章内图片的元数据
4. **缓存系统更新** – 更新相关缓存数据
5. **关联数据同步** – 同步评论、点赞、收藏等关联数据
**内容采集的问题:**
1. **依赖数据缺失** – 采集内容缺少完整的依赖数据链
2. **缓存不一致** – 缓存数据与实际数据不匹配
3. **查询性能下降** – 需要额外的数据库查询来补全数据
4. **统计不准确** – 分类、作者等统计数据不完整
性能优化建议
**对于插件开发:**
1. **实现完整的数据依赖链**
– 在采集时补全分类、标签的统计数据
– 维护作者相关数据的完整性
– 确保图片等媒体文件的元数据完整
2. **优化缓存策略**
– 在数据变更时及时更新相关缓存
– 使用合理的缓存过期策略
– 避免缓存穿透和雪崩
3. **数据库优化**
– 为采集相关的查询创建合适的索引
– 使用批量操作减少数据库压力
– 实现数据预加载机制
4. **异步处理**
– 将非关键的数据处理任务异步化
– 使用队列系统处理批量操作
– 实现增量更新机制
9.4 扩展开发建议
钩子使用建议
– 优先使用主题提供的钩子进行扩展
– 避免直接修改核心文件
– 合理设置钩子优先级
函数调用建议
– 使用主题提供的工具函数
– 避免重复造轮子
– 遵循主题的编码规范
数据库操作建议
– 使用主题提供的数据库类
– 避免直接操作数据库表
– 注意数据一致性和完整性
—
*本文档最后更新:2025-10-31*
*适用于子比主题版本:8.3*


请登录后查看回复内容