Puock 是一款基于 WordPress 开发的高颜值自适应主题,支持白天与黑夜模式、无刷新加载、多种布局模式等特性。
项目仓库: https://github.com/Licoy/wordpress-theme-puock
- PHP: 7.4+
- WordPress: 6.0+
- Composer: 依赖管理
- JavaScript: ES6+
- CSS预处理器: Less
- 后台框架: Vue3 + NaiveUI
- 图标库: Font Awesome, Strawberry Icon
- Gulp: 任务运行器
- Babel: JavaScript转译器
- 包管理器: npm/pnpm
puock/
├── inc/ # 核心功能目录
│ ├── ajax/ # Ajax处理
│ │ ├── ai.php # AI相关接口
│ │ ├── page-poster.php # 海报生成
│ │ └── ...
│ ├── classes/ # 类文件
│ ├── ext/ # 扩展功能
│ │ └── moments.php # 朋友圈功能
│ ├── fun/ # 功能函数
│ │ ├── ajax.php # Ajax公共函数
│ │ ├── cache.php # 缓存函数
│ │ ├── comment.php # 评论功能
│ │ ├── short-code.php # 短代码
│ │ └── ...
│ ├── oauth/ # OAuth登录
│ │ └── callback/
│ ├── page/ # 页面功能
│ │ └── user-center.php
│ ├── setting/ # 后台设置
│ │ ├── options/ # 选项配置
│ │ └── template.php # 模板文件
│ ├── init.php # 初始化
│ ├── seo.php # SEO功能
│ └── metas.php # 元数据
├── assets/ # 前端资源
│ ├── dist/ # 编译后的文件(不修改)
│ ├── fonts/ # 字体文件
│ ├── img/ # 图片资源
│ ├── js/ # JavaScript源码
│ │ ├── admin.js # 后台JS
│ │ ├── puock.js # 前台核心JS
│ │ └── page-ai.js # AI页面JS
│ ├── libs/ # 第三方库
│ └── style/ # Less源码
├── templates/ # 主题模板
│ ├── module-*.php # 模块组件
│ ├── box-*.php # 盒子组件
│ └── content-none.php
├── pages/ # 自定义页面模板
│ ├── template-*.php # 各类页面模板
├── gutenberg/ # Gutenberg区块
│ └── components/
├── languages/ # 语言包
├── vendor/ # Composer依赖(不修改)
├── update-checker/ # 更新检查器(不修改)
├── ad/ # 广告位模板
├── libs/ # 前端库源码
├── cache/ # 缓存目录
├── .github/ # GitHub配置
│ └── workflows/ # GitHub Actions
├── functions.php # 主题主文件
├── style.css # 主题样式声明
├── gulpfile.js # Gulp构建配置
├── .babelrc # Babel配置
├── package.json # npm包配置
├── composer.json # Composer配置
└── README.md # 项目说明
- Node.js 14+
- PHP 7.4+
- WordPress 6.0+
- Composer (可选)
- 克隆项目
git clone https://github.com/Licoy/wordpress-theme-puock.git
cd wordpress-theme-puock/wp-content/themes/puock- 安装前端依赖
npm install
# 或使用 pnpm
pnpm install- 安装PHP依赖 (可选)
composer install# 构建生产版本
npm run build
# 开发模式 (监听文件变化)
npm run dev构建过程会执行以下任务:
- 编译 Less 文件到
assets/dist/style/ - 转译并压缩 JS 文件到
assets/dist/js/ - 合并并压缩第三方库到
assets/dist/
- 修改 Less: 编辑
assets/style/*.less,构建后生成.min.css - 修改 JS: 编辑
assets/js/*.js,构建后生成.min.js - 库文件: 修改
assets/libs/basic/中的文件 - 不要直接修改:
assets/dist/中的文件会被构建覆盖
- 位置:
inc/setting/ - 配置文件:
inc/setting/options/*.php - 模板:
inc/setting/template.php - 后台框架: Vue3 + NaiveUI
- 入口:
inc/ajax/index.php - 功能:
- AI 对话:
inc/ajax/ai.php - 海报生成:
inc/ajax/page-poster.php - OAuth登录:
inc/ajax/page-oauth-login.php - 前台登录:
inc/ajax/page-front-login.php
- AI 对话:
- 功能函数:
inc/fun/comment.php - Ajax处理:
inc/fun/comment-ajax.php - 邮件通知:
inc/fun/comment-notify.php
- 主文件:
inc/oauth/oauth.php - 回调:
inc/oauth/callback/*.php - 支持的平台: QQ, Github, Gitee, 微博
- 位置:
inc/fun/short-code.php - 支持功能:
- 下载按钮
- 评论后可见
- 登录后可见
- 提示框
- Github卡片
- 隐藏内容
- 主文件:
inc/seo.php - 分类SEO:
inc/category-seo.php - 功能: 标题优化、描述优化、关键词优化
- 类文件:
inc/classes/PuockUserCenter.php - 页面:
inc/page/user-center.php
- 朋友圈:
inc/ext/moments.php - AI功能:
inc/ajax/ai.php
header.php- 头部模板footer.php- 底部模板index.php- 首页single.php- 文章页page.php- 页面category.php- 分类页tag.php- 标签页search.php- 搜索页author.php- 作者页404.php- 404页面sidebar.php- 侧边栏
pages/template-chatgpt.php- ChatGPT页面pages/template-moments.php- 朋友圈页面pages/template-links.php- 友情链接pages/template-archives.php- 文章归档pages/template-reads.php- 读者墙pages/template-tags.php- 标签页pages/template-book.php- 书籍推荐pages/template-random.php- 随机文章
templates/module-post.php- 文章模块templates/module-posts.php- 文章列表templates/module-cms.php- CMS模块templates/module-banners.php- 轮播图templates/module-menus.php- 导航菜单templates/module-links.php- 友情链接templates/module-andb.php- 广告位
- 遵循 WordPress 编码规范
- 使用函数前缀
pk_(Puock) - 使用常量
PUOCK作为主题名称 - 所有文本使用国际化:
__('文本', PUOCK)
- 使用 ES6+ 语法
- 使用 Babel 转译确保兼容性
- 代码风格保持一致
- 使用变量定义颜色、字体等
- 保持嵌套层级合理
- 注释清晰
- 编辑
assets/style/common.less - 查找并修改主题色变量
- 运行
npm run build编译
- 编辑对应的 Less 文件
- 支持博客、CMS、企业三种布局模式
- 推荐在
assets/style/custom.less(需创建) 中添加 - 在
assets/style/common.less中引入
- 在
inc/ajax/创建新文件 - 在
inc/ajax/index.php中注册 - 在前端 JavaScript 中调用
- 在
inc/fun/short-code.php中添加短代码处理函数 - 使用
add_shortcode()注册
- 在
pages/创建template-*.php - 添加模板注释:
/*
Template Name: 模板名称
*/- 在
inc/setting/options/创建新的选项类 - 在
inc/setting/index.php中注册 - 使用
pk_get_option()获取选项值
pk_get_option($key) // 获取选项
pk_is_checked($key) // 检查是否启用pk_cache_get($key) // 获取缓存
pk_cache_set($key, $value) // 设置缓存pk_ajax_resp($data, $msg, $code) // 成功响应
pk_ajax_resp_error($msg, $data) // 错误响应get_post_images($post) // 获取文章图片
get_post_category_link() // 获取分类链接
get_post_tags() // 获取文章标签
pk_breadcrumbs() // 面包屑导航
pk_get_seo_title() // SEO标题- 配置 WordPress 本地环境
- 启用主题
- 运行
npm run dev监听文件变化 - 在浏览器中测试功能
- 主题切换(白天/黑夜)
- 页面布局切换
- 登录/注册
- 评论功能
- Ajax 加载
- SEO 功能
- 短代码功能
- OAuth 登录
- 编辑
style.css中的版本号 - 编辑
package.json中的版本号
npm run buildgit add .
git commit -m "版本更新说明"
git push- 在 GitHub 上创建新的 Release
- 上传主题压缩包
- 编写更新日志
- 使用
error_log()输出日志 - 检查 WordPress debug 模式
- 查看浏览器控制台
- 使用浏览器开发者工具
- 检查控制台错误
- 使用 console.log 调试
- 使用浏览器开发工具检查样式
- 使用 Less 变量方便调试
A: 编辑 assets/style/common.less 中的颜色变量,然后运行 npm run build
A: 在主题设置中关闭对应选项,或在 functions.php 中注释相关代码
A: 在 assets/img/icons/ 添加图标文件,并在 CSS 中引用
A: 检查 Node.js 版本,删除 node_modules 和 package-lock.json,重新安装依赖
A: 在主题根目录创建子主题,或直接修改对应模板文件
主要依赖构建工具:
- gulp
- gulp-babel
- gulp-less
- gulp-uglify
- @babel/core
- @babel/preset-env
- yurunsoft/yurun-oauth-login - OAuth登录
- zoujingli/ip2region - IP地址库
- orhanerday/open-ai - OpenAI集成
- rahul900day/gpt-3-encoder - GPT-3编码器
- 启用缓存: 使用主题内置缓存功能
- 压缩图片: 使用 timthumb.php 或其他图片优化工具
- 合并文件: 构建时已自动合并JS和CSS
- 使用CDN: 配置CDN加速静态资源
- 开启Gzip: 在服务器配置中开启Gzip压缩
- 定期更新 WordPress 和主题
- 不要直接修改
vendor/目录 - 检查文件权限
- 启用主题内置的安全功能
- 定期备份数据库和文件
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- GitHub: https://github.com/Licoy/wordpress-theme-puock
- Issues: https://github.com/Licoy/wordpress-theme-puock/issues
- 文档: https://www.licoy.cn/puock-doc.html
GPL V3.0 - 请遵守开源协议,保留主题底部的署名