伪静态规则逐条拆解:{%page%} 为 1 时那段为什么消失
上一篇捋完分类父子关系,这篇直接拆伪静态规则本身。{%page%} 在页码为 1 时不是替换成空字符串,而是整段连同连接符被跳过;分类规则末尾那个斜杠属于规则的一部分,少一个就 404;page=0 能返回第 1 页内容,这个口子要在 Nginx 层堵。附实测对照表。
以下是带有「Z-Blog」标签的全部文章
上一篇捋完分类父子关系,这篇直接拆伪静态规则本身。{%page%} 在页码为 1 时不是替换成空字符串,而是整段连同连接符被跳过;分类规则末尾那个斜杠属于规则的一部分,少一个就 404;page=0 能返回第 1 页内容,这个口子要在 Nginx 层堵。附实测对照表。
Z-Blog 的分类对象看着字段挺全,但一半是魔术属性,每次访问现算。分清哪些是存的、哪些是算的,才不会写出「改了没生效」的代码。这篇把 Level、Root、Parent、AllCount 逐条核了一遍,顺带说清分页地址为什么不能手拼。
给插件加后台配置页,不用自己建表:Z-Blog 自带 $zbp->Config('插件ID') 一个插件一个命名空间,读两行写两行,但 SaveConfig 一次都不能漏,Config 从未创建时读出来是 null 而非空串,必须带默认值兜底。文中给出 main.php 最小骨架…
把 Z-BlogPHP 前台页面落成真实 HTML 文件,按站点当前的伪静态规则写到对应路径。生成后由 Web 服务器直接命中静态文件,无需再执行 PHP 与查询数据库,可有效降低服务器负载、提升访问速度。适合内容更新频率不高、但访问量较大的站点:一次生成,长期直接由静态文件响应…
上一篇结尾我说要把那三处代码收成插件。真动手时,第一版我是直接粘进主题的 include.php 里的。第二天换样式试效果,主题文件一覆盖,目录、相关文章、面包屑全没了。代码还在,只是不在插件里,主题一动它就跟着走。 所以这篇不讲新钩子。把
钩子拿到的参数是引用还是副本,决定了改了算不算数。本文按 Article_Content、ViewList_Core、Post_Get 三个钩子列出各自能拿到什么,配三段可直接用的实战代码:文章页按分类取相关文章、正文自动生成目录、列表页取分类父子路径。最后记三个坑:漏写 & 改…
前台四类页面的钩子位置汇总:Index、List、Article、Search 前缀相同语义一致——Begin 插顶部、End 插底部、Core 改数据层、Content 改正文本身。附三个实测坑:Begin 触发时 head 已输出、漏写 & 引用改了无效、Article_Co…
Z-Blog 钩子本质是注册回调的数组,没有优先级参数,要调顺序只能动插件加载顺序。本文按 plugin.xml → RegisterPlugin → Add_Filter_Plugin → 触发执行四步拆开链路,并按场景列出常挂的钩子,附页头注入与后台加菜单两段可直接抄的代码,…
分页坏了,一般是三种情况之一。 要么页码不显示,要么显示了但点了跳到第一页,要么点第二页出来的是第一页的内容。 分别对应三个不同的问题。逐条说。 一、页码不显示 模板里没写分页标签,或者写了但变量没赋上。 Z-Blog 原生主题的
写主题最费时间的一件事,不是排版,是猜。 猜 $article 里有没有这个字段。 文档不够细,只能 var_dump 打出来看。这篇文章就是把常用的和几个冷门的列清楚,省点时间。 基础的那几个 标题:$article->Title