【子比主题】开发文档 非官方版本-网站建设服务中心-电脑网络-本牛千智丨专注WorkFine开发

【子比主题】开发文档 非官方版本

概述

本文档详细记录了子比主题 (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中的字段创建索引
– 使用复合索引覆盖常见查询模式

查询优化策略

  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


 一、核心钩子 (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*
请登录后发表评论

    请登录后查看回复内容