本文是 RyeBlog 开发速查手册,面向主题开发、插件开发和二次开发。
一、URL 路由(伪静态)
| 路径 | 实际入口 |
|---|---|
| / | index.php(首页列表) |
| /{slug}.html | post.php?slug={slug}(文章) |
| /{slug} | post.php?slug={slug}(文章,无 .html 亦可) |
| /category/{slug}.html | category.php?c={slug}(分类页) |
| /tag/{slug} | tag.php?t={slug}(标签页) |
| /tags | tags.php(标签云) |
| /page/{slug} | page.php?p={slug}(独立页) |
| /search?q=关键词 | search.php(搜索) |
| /feed | feed.php(RSS) |
| /sitemap.xml | sitemap.php |
规则文件:Apache .htaccess / Nginx rewrite 文件,后台设置页有参考规则可直接复制。
二、核心函数速查
数据查询(全部自动转换表前缀、参数化防注入):
dbAll('SELECT * FROM vd_posts WHERE type=?', ['post']); // 多行
dbOne('SELECT * FROM vd_posts WHERE id=?', [$id]); // 单行
dbQuery('UPDATE vd_posts SET views=views+1 WHERE id=?', [$id]); // 写操作选项(站点设置):
getOption('site_title', '默认值');
setOption('theme', 'rye');内容获取:getPosts(['perPage'=>10,'page'=>1,'category'=>$id,'tag'=>$slug])、getPost($id)、getPostBySlugAnyType($slug)、getPages()、getCategories()、getTags($limit)。
链接生成:postUrl($post)、categoryUrl($cat)、tagUrl($tag)、pageUrl($page)、homeUrl()、baseUrl('admin/xxx.php')。
输出与安全:esc($str)(HTML 转义)、nl2br、csrfToken()、checkCsrf()、currentUser()、isLoggedIn()。
多语言:__('中文')(后台 UI 词典翻译)、L($row, 'title')(内容字段,英文站优先 *_en 回退中文)、currentLang()、bilingualEnabled()。
三、数据库表结构
| 表 | 说明 |
|---|---|
| vd_posts | 文章/独立页:title / slug / content / type(post|page) / status / format(markdown|html) / category_id / views / excerpt / seo_* / cover_image / allow_comment |
| vd_categories | 分类:name / slug / description / parent_id |
| vd_tags | 标签:name / slug / count |
| vd_post_tags | 文章-标签关联 |
| vd_comments | 评论:post_id / author / email / website / content / status(pending|approved) / author_ip |
| vd_options | 站点选项(key-value) |
| vd_users | 用户:username / password / role / status / login_ip / login_at |
| vd_menus | 菜单:location(top|footer) / title / url / sort_order |
| vd_attachments | 附件 |
| vd_trail | 浏览轨迹 |
英文站字段(启用 english-admin 插件后):title_en / slug_en / content_en / excerpt_en / seo_description_en / seo_keywords_en 等。
四、钩子(Hook)清单
doHook('名称', $arg) → 调用所有已启用插件的同名静态方法:
nav_top:顶栏导航home_after:首页列表之后page_replace:独立页整页替换post_content_after:文章正文之后articleFooter:文章页底部comment_form_extra:评论表单内comment_check:评论提交检查(返回字符串=拒绝原因)
五、主题模板机制
主题目录 usr/theme/<名字>/,以下文件存在则自动接管对应页面:
home.php # 首页
post.php # 文章页
page.php # 独立页
category.php # 分类页(可 require list_common.php)
tag.php # 标签页
search.php # 搜索页
list_common.php # 列表页公共骨架
theme.css # 主题样式(@Title/@Desc/@Version 元信息)
theme.js # 主题脚本(defer 自动加载)theme.css 头部的 @Title 就是后台「外观」页显示的主题名,@Version 参与云端更新比较。
六、后台入口
/admin/login.php 登录(账号在安装时创建)
/admin/write.php 写文章(支持 Markdown/HTML、图片上传、实时预览)
/admin/posts.php 文章管理(搜索+分页)
/admin/themes.php 主题管理(云端安装/编辑/删除)
/admin/plugins.php 插件管理(云端安装/启用/配置)
/admin/categories.php / tags.php / comments.php / menus.php / settings.php
RyeBlogRye