1. 首页 > CMS系统 > ZBLOG

zblog文章自动生成摘要长度修改方法

下面把原文扩展成一篇可直接发布的教程,篇幅约为原文三倍以上,并补充了备份、版本差异、旧文章批量处理、模板替代方案和注意事项。

Z-Blog 文章自动生成摘要长度修改方法(扩展版)

很多使用 Z-Blog 搭建博客的站长,都会遇到一个看似不大、却很影响浏览体验的问题:文章列表页的自动摘要太长。默认情况下,系统会自动从文章正文中截取一段文字作为摘要。可这个长度往往有 200 个字符左右,放在列表页里,每篇文章都占很大一块面积。结果就是:一屏只能显示三四篇文章,滚动条被拉得很长,读者想快速浏览更多内容时非常不方便。

于是,很多人希望把自动生成的摘要长度改短一点,比如改成 100 个字符左右。这样既保留了文章的核心提示,又能让列表页更紧凑,一屏可以展示更多文章,整体阅读节奏也更轻快。

麻烦的是,Z-Blog 的后台并没有直接提供“自动摘要长度”的设置项。至少在早期 ASP 版本的 Z-Blog 中,这个长度是写死在程序代码里的。因此,想要修改,就必须找到对应的源代码,做一次简单但需要谨慎的改动。

一、原理:自动摘要是在哪里生成的?

在旧版 Z-Blog 中,文章编辑页面通常会有一个“摘要”输入框。如果作者没有手动填写摘要,系统就会自动从正文中截取一部分内容,填充到摘要字段中。这个自动截取的动作,通常由一个 JavaScript 函数完成,函数名常见为 AutoIntro()。

这个函数一般位于博客后台的编辑文件中。根据原文经验,可以沿着下面的路径查找:

博客根目录\ADMIN\edit.asp

打开这个文件后,搜索 AutoIntro(),就能看到类似下面的代码逻辑:

function AutoIntro(){
    var str = document.getElementById("Content").value;
    if(str.length > 200){
        str = str.substring(0, 200) + "...";
    }
    document.getElementById("Intro").value = str;
}

这段代码的意思是:如果正文长度超过 200 个字符,就截取前 200 个字符,并在后面加上省略号,然后把它放进摘要输入框。也就是说,决定摘要长度的关键数字就是 200。

如果你希望摘要变成 100 个字符,只需要把这里的 200 改成 100:

if(str.length > 100){
    str = str.substring(0, 100) + "...";
}

这样,新发表的文章在没有手动填写摘要时,就会自动生成大约 100 个字符的摘要。列表页看起来会更短、更清爽,一屏能显示的文章数量也会明显增加。

二、具体修改步骤

虽然操作本身不复杂,但涉及后台源文件,建议按步骤来,避免改错或覆盖失败。

1. 先备份

在修改任何源码之前,先备份两个东西:

  • 整个网站文件,至少备份 ADMIN/edit.asp;
  • 数据库,尤其是文章表,防止后续批量处理时出错。

备份是最容易被忽略的一步,但也是最关键的。一旦改错,能快速恢复。

2. 找到目标文件

通过 FTP 工具、宝塔面板、虚拟主机文件管理器等方式,进入博客根目录,找到:

\ADMIN\edit.asp

注意,不同版本、不同主题、不同程序结构可能会让路径略有差异。如果找不到,可以在整个博客目录中搜索 AutoIntro 或搜索 substring(0, 200)。

3. 用合适的编辑器打开

建议使用 Notepad++、VS Code、Sublime Text 等代码编辑器打开。不要用 Word 或写字板,因为它们可能改变编码或插入额外格式,导致文件无法正常运行。

打开后,搜索:

AutoIntro

或者直接搜索:

200

找到与摘要截取相关的那个 200。注意不要误改其他地方的 200,比如分页数量、超时时间、表单长度等。

4. 把 200 改成 100

将摘要截取逻辑中的 200 改为 100。如果你希望更短,可以改成 80;如果觉得 100 太短,也可以改成 120 或 150。一般建议列表页摘要控制在 80 到 120 个字符之间,移动端尤其如此。

修改后保存文件,并保持原编码不变。旧版 ASP 文件常见编码可能是 UTF-8 或 GB2312,如果保存时编码变了,中文可能乱码。

5. 上传覆盖并清理缓存

把修改后的 edit.asp 上传回原位置,覆盖旧文件。然后进入 Z-Blog 后台,清理缓存、重建文件、更新索引。不同版本操作名称不一样,有的叫“清除缓存”,有的叫“重建文件”,有的叫“更新数据”。

6. 新建文章测试

新建一篇测试文章,正文超过 100 个字符,摘要框留空,保存后查看列表页。如果摘要长度明显变短,说明修改生效。

如果没有任何变化,可以检查:

  • 是否改对了文件;
  • 是否改对了函数;
  • 浏览器或 CDN 是否有缓存;
  • 后台是否生成静态页,需要重新生成;
  • 文章是否手动填写过摘要,手动摘要通常优先于自动摘要;
  • 文件编码是否被破坏。

三、重要提醒:只对新文章生效

这种修改有一个明显限制:它只影响之后新发表或重新编辑并触发自动摘要的文章。之前已经保存到数据库里的旧文章,摘要字段已经写死了,不会因为改了 AutoIntro() 就自动变短。即使你在后台执行“重建文件”,也未必会重新计算摘要,因为重建文件通常只是根据数据库内容重新生成页面,而不是重新执行编辑页里的 JavaScript 截取函数。

所以,旧文章摘要长度不会自动改变。想要批量处理,需要另想办法。

四、旧文章如何批量修改摘要长度?

如果你有很多旧文章,摘要仍然是 200 个字符,可以通过下面几种方式处理。

1. 数据库批量更新

熟悉数据库的站长,可以在备份数据库后,通过 SQL 批量更新文章摘要字段。旧版 Z-Blog 的文章表通常类似 blog_Article,摘要字段可能是 log_Intro,正文字段可能是 log_Content。可以写类似这样的 SQL:

UPDATE blog_Article
SET log_Intro = LEFT(log_Content, 100)
WHERE log_Intro IS NULL OR log_Intro = '';

但要注意:不同版本的表名、字段名可能不同,数据库类型也可能是 Access、SQL Server 或 MySQL。执行前一定要先备份,并先用几条数据测试。不要把正文、摘要、标题字段搞混。

2. 开发或使用插件

更稳妥的方式是写一个 Z-Blog 插件,在文章保存、重建或批量操作时,重新生成摘要。插件可以读取正文,去掉 HTML 标签,按指定长度截取,再写回摘要字段。这样既能统一旧文章,也能避免直接操作数据库的风险。

3. 导出后处理再导入

如果文章数量不是特别大,可以导出文章数据,用脚本或表格工具批量截取摘要,再重新导入。不过这种方法比较繁琐,适合不熟悉数据库、但又需要批量处理的站长。

4. 手动编辑重点文章

如果旧文章不多,或者你只在意少数重点文章,也可以手动编辑这些文章,重新保存摘要。虽然效率低,但最安全。

五、更好的替代方案:在模板里控制显示长度

除了修改后台自动摘要函数,还有一种更灵活的方式:不动数据库,只在模板列表页截取摘要显示长度。

也就是说,数据库里仍然保存原来的摘要,但模板输出时只显示前 100 个字符。这样做的好处是:

  • 旧文章也能立刻统一显示长度;
  • 不需要批量改数据库;
  • 以后想改长度,只改模板即可;
  • 不影响摘要字段本身,便于 SEO 或其他调用。

缺点是,它只是“显示截取”,并没有真正修改摘要数据。如果其他页面直接调用完整摘要,仍然可能显示较长内容。

另外,也可以用 CSS 做多行截断,例如:

.article-intro {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

但 CSS 截断只是视觉隐藏,实际文本还在页面里,对 SEO 和复制摘要有一定影响。

六、摘要长度设置建议

摘要不是越长越好,也不是越短越好。太长会让列表页臃肿,太短又无法让读者判断文章内容。一般可以参考:

  • 移动端列表:80 到 100 个字符;
  • 桌面端博客:100 到 120 个字符;
  • 资讯类站点:100 到 150 个字符;
  • 如果列表有缩略图、标题、分类、日期等信息,摘要可以更短,80 左右即可。

原文把 200 改成 100,是一个比较合理的调整。它能让一屏显示更多文章,减少滚动条长度,提升列表页的浏览效率。

七、版本差异提醒

需要特别说明的是,上面提到的 ADMIN/edit.asp 和 AutoIntro() 主要适用于旧版 ASP 架构的 Z-Blog。后来流行的 Z-BlogPHP 在程序结构、后台设置和模板机制上都有很大变化。Z-BlogPHP 可能在后台设置中提供摘要长度选项,或者通过 ZC_EXCERPT_LENGTH 之类的配置控制。因此,不要直接把旧版 ASP 的方法照搬到 Z-BlogPHP 上。

如果你使用的是 Z-BlogPHP,建议先到后台“网站设置”“全局设置”“文章设置”等位置查找摘要长度选项;如果没有,再搜索程序目录中的摘要相关函数,或者通过插件实现。修改前同样要备份。

八、总结

Z-Blog 自动摘要太长,是因为后台没有开放长度设置,而源码中把截取长度写死为 200。修改方法并不复杂:

  1. 备份网站和数据库;
  2. 找到 博客根目录\ADMIN\edit.asp;
  3. 搜索 AutoIntro();
  4. 将摘要截取逻辑中的 200 改为 100;
  5. 保存、上传、清理缓存;
  6. 新建文章测试效果。

这样修改后,新文章的自动摘要会缩短到约 100 个字符,列表页能显示更多文章,滚动条也不会拉得太长。但旧文章不会自动变化,需要数据库批量更新、插件处理,或者在模板中统一截取显示。

一句话:改 AutoIntro() 里的数字很简单,难的是旧文章批量和版本差异。只要提前备份、注意编码、测试生效,再根据自己博客的实际情况选择批量方案,就能在保持内容可读性的同时,让 Z-Blog 的文章列表更加紧凑清爽。

本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/zblog/7900.html

联系我们

在线咨询:点击这里给我发消息

Q Q:2220678578