第一部分:开发文档(面向开发者 / AI 协作)
1. 项目概述
插件名称:ZBlog to WP Converter
版本:2.3.0
目标:将 ZBlogPHP 导航主题(Yunnav)完整、独立地移植为 WordPress 插件,不修改主主题,通过短代码和小工具实现原主题所有页面布局与功能。
2. 架构设计
2.1 目录结构
zblog-to-wp/ ├── zblog-to-wp.php # 插件主文件(入口) ├── includes/ │ ├── class-settings.php # 后台设置面板 │ ├── class-widgets.php # 小工具(热门/最新文章) │ ├── class-nav-walker.php # 自定义菜单输出(适配原主题样式) │ ├── shortcodes.php # 短代码注册与回调 │ └── template-functions.php # 模板辅助函数 ├── templates/ │ ├── index-template.php # [zb_index] 首页 │ ├── list-template.php # [zb_list] 分类列表(含加载更多) │ └── single-template.php # [zb_single] 内容详情 ├── assets/ │ ├── css/pc/ # PC 端样式(原 style/ 目录) │ ├── css/wap/ # 移动端样式(原 m/ 目录) │ ├── js/pc/ # PC 端 JS │ ├── js/wap/ # 移动端 JS │ └── images/ # 图片资源(br/, sr/, gg/, web_ico/ 等) └── readme.txt # WordPress 插件信息
2.2 核心常量
| 常量名 | 说明 |
|---|---|
| ZB2WP_VERSION | 版本号 |
| ZB2WP_PLUGIN_DIR | 插件目录绝对路径 |
| ZB2WP_PLUGIN_URL | 插件目录 URL |
| ZB2WP_TEMPLATE_DIR | 模板文件目录 |
| ZB2WP_PC_CSS_URL | PC 样式 URL |
| ZB2WP_WAP_CSS_URL | 移动样式 URL |
| ZB2WP_PC_JS_URL | PC 脚本 URL |
| ZB2WP_WAP_JS_URL | 移动脚本 URL |
| ZB2WP_IMG_URL | 图片资源 URL |
2.3 数据存储
- 设置项:wp_options 表,键名 zb2wp_settings(数组)
- 文章扩展字段:wp_postmeta 表,键名 _zb2wp_*(前缀)
- 阅读数:wp_postmeta 表,键名 zb2wp_views(可自定义)
2.4 短代码一览
| 短代码 | 功能 | 参数 |
|---|---|---|
| [zb_index] | 首页完整布局 | posts_per_page(可选) |
| [zb_list] | 分类列表 | cat(可自动匹配),posts_per_page |
| [zb_single] | 单篇详情 | id(自动从 URL 或最新文章获取) |
2.5 核心函数
| 函数 | 位置 | 说明 |
|---|---|---|
| zb2wp_enqueue_assets() | 主文件 | 按需加载 PC/WAP 资源 |
| zb2wp_get_meta($key) | template-functions | 获取文章扩展字段 |
| zb2wp_get_settings() | template-functions | 获取所有配置 |
| zb2wp_get_index_page_url() | template-functions | 获取首页 URL |
| zb2wp_get_single_page_url() | template-functions | 获取详情页 URL |
| zb2wp_get_list_page_url() | template-functions | 获取列表页 URL |
| zb2wp_get_category_link_in_plugin($cat_id) | template-functions | 生成分类列表链接 |
| zb2wp_get_page_by_shortcode($shortcode) | template-functions | 查找包含短代码的页面 |
| zb2wp_time_ago($time) | template-functions | 友好时间格式 |
| zb2wp_first_image($content) | template-functions | 提取文章第一张图片 |
| ZB2WP_Nav_Walker | class-nav-walker | 自定义菜单输出(适配原主题 div 结构) |
2.6 AJAX 接口
| 动作 | 说明 |
|---|---|
| wp_ajax_zb2wp_load_more | 加载更多文章(列表页) |
| wp_ajax_nopriv_zb2wp_load_more | 同上(未登录用户) |
| wp_ajax_zb2wp_fetch_url_info | 后台抓取网址信息(标题、描述、关键词、图标) |
2.7 钩子(Hooks)
激活钩子:register_activation_hook 初始化默认设置。
资源加载:wp_enqueue_scripts -> zb2wp_enqueue_assets
小工具注册:widgets_init -> zb2wp_register_widgets
自定义字段:add_meta_boxes / save_post
菜单注册:init -> zb2wp_register_menus
后台脚本:admin_enqueue_scripts 加载 admin.js
3. 扩展指南
3.1 新增短代码
- 在 shortcodes.php 用 add_shortcode 注册
- 回调函数中引用模板文件(置于 templates/)
- 在 zb2wp_enqueue_assets 中为其添加资源加载条件
3.2 增加后台字段
- 在 class-settings.php 的 defaults 数组添加默认值
- 在 settings_page() 输出表单元素
- 模板中用 zb2wp_get_settings() 读取
3.3 添加新文章扩展字段
- 在 zb2wp_meta_box_callback() 的 $fields 数组中添加
- 在 zb2wp_save_meta_box() 的循环中确保保存
- 模板中用 zb2wp_get_meta(‘field_name’) 读取
3.4 适配其他主题样式
将 CSS 放入 assets/css/pc/ 或 wap/,在 zb2wp_enqueue_assets 中用 wp_enqueue_style 按需加载即可。
4. 注意事项
- PC/WAP 隔离:资源路径已按设备分开,避免样式冲突。
- 安全:所有输出均使用 esc_* 函数,AJAX 带 nonce 验证。
- 性能:资源仅在含短代码页面加载,避免全站冗余。
- 兼容性:不修改任何 WordPress 核心或主题文件,独立运行。
第二部分:更新记录(Changelog)
v2.3.0(2026-08-02)
- 修复:列表页分页样式与功能(使用 paginate_links 并适配原主题)。
- 修复:内容页框架错乱,补全原主题 info、other、lists 等容器。
- 修复:顶部菜单栏高亮(.hover 类自动添加)。
- 新增:菜单独立注册(zb2wp_primary),不干扰主题菜单。
- 新增:LOGO 链接跳转到插件首页(zb2wp_get_index_page_url())。
- 新增:列表页“加载更多”功能(AJAX 无刷新加载)。
- 新增:后台文章编辑页“获取网址信息”按钮(自动填充标题、关键词、图标)。
- 调整:PC/WAP 资源完全分离,按设备加载对应样式。
- 移除:独立搜索页(改为 WordPress 默认搜索,减少冗余)。
- 优化:分页链接生成,避免 404。
v2.2.0(2026-07-31)
- 整合原主题所有 CSS/JS,按短代码类型按需加载。
- 增加 PC/WAP 分目录支持。
- 完善后台设置面板。
v2.1.0(2026-07-30)
- 初始版本,包含三个核心短代码及基础模板。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END




![适用于全部WordPress程序网站的数据库批量替换插件、可无脑一键换域名工具[插件发布]-回忆博客](http://www.aih0.cn/wp-content/uploads/2026/07/ea59d7d0db541c58ce295fe270ed0873.jpeg)






暂无评论内容