WordPress的Revisions文档说,修订系统记录每次保存的草稿或已发布内容的更新。[1] 默认跟踪标题、作者、正文和摘要的变化,比较中分别呈现新增、未变与删除的内容;新增或删除的行有标记,单个字符变化还有进一步突出。

自动保存是一种特殊修订。同一用户对同一文章最多有一份autosave,新的自动保存会覆盖该用户旧的自动保存。多人参与时,每位用户各有自己的那份记录。这里的数量条件同时包含用户和文章:同一文章可以关联不同用户的自动保存,数量范围并非只由文章编号决定。Autosaves段还说,它们适用于文章和页面,不覆盖实际文章或已发布内容,在修订时间线中带有Autosave标识。

修订保存在posts表内,是所属文章的子记录,post_status为inherit,post_type为revision。普通修订的名称带父文章编号与revision,自动保存名称则带父编号与autosave。[1] 名称中的父编号说明关联哪篇文章,修订记录仍有自己的身份;父对象与子记录不会因为共用一个编号片段就成为同一条内容。

REST手册的Schema进一步区分编号。[2] id是修订的唯一标识,parent是父对象编号,author是修订作者的用户编号,三者都是整数类型。slug则是该类型内唯一的字母数字标识,JSON类型为string。对内容交接表而言,一列名为“编号”尚未说明是在谈版本、所属文章还是作者;slug也有标识作用,却没有沿用这三项的整数类型。

时间字段的含义与呈现范围需要一起读。date和date_gmt分别用站点时区和GMT表达修订发布时间,modified和modified_gmt表达最后修改时间。这四项在Schema中均为string,格式为datetime;但context列表不同:date列view、edit、embed,date_gmt以及两个modified字段只列view、edit。也就是说,时间格式相同没有让它们获得同一组呈现语境;读取字段定义时,发布时间、修改时间、时区表达和context是四份各有指向的信息。

编号的context也提供了对照。author、id、parent与slug均列view、edit、embed,因此不能把“整数型”当作进入某个context的单独条件:字符串slug也在这组名单中。内容字段又有另一组差别,title、content和excerpt的JSON类型都是object,title与excerpt列出embed,content却只列view与edit。对象类型回答字段怎样被定义,context回答手册在哪些语境列示它,二者需要分别保留。

比较界面采用版本限定。当前Revisions文档说,WordPress7.0起的新修订屏幕以绿色实块标新增、红色前斜线标删除、黄色后斜线标修改。6.9及以前的classic方式对照两侧HTML内容,并提供任意两版比较的双滑柄:两只滑柄分别对应比较起点与终点。7.0也保留进入classic屏幕的说明。[1] 这里识读的是官方记录与显示定义,未请求接口、处理真实文章或推断本站安装版本。

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。