后预览机制体系结构

时间:2016-02-23 作者:Dima Gimburg

我想知道WordPress在发布前是如何处理预览帖子的。

我正在进入要编辑的帖子的编辑模式,更改一些内容,按preview,然后显示带有更改的预览。

我的问题是:

预览后期渲染和路由是否与Live One相同

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

即使只按一个“预览”按钮,也可能以两条不同的“路线”结束。

这个有点像

http://example.com/postname/?preview=true
第二种是:

http://example.com/postname/?preview_id=152&preview_nonce=xxx&preview=true
所以第一个包含preview 查询参数,第二个包含

  • preview_id
  • preview_nonce
  • preview
查询参数。

preview 查询参数告诉WordPress允许向具有适当功能的用户显示未发布的帖子。

如果您有一篇文章保存为“草稿”,并且您已登录,您可以在前端查看它,就像它已发布一样,只需添加?preview=true 到帖子url。

第二种url是在post autosave运行时通过javascript附加到预览按钮的。

自动保存在posts表中按原样存储帖子(包括任何更改),但将实际帖子类型替换为“修订”类型。

查找更多信息here.

Autosave在后端定期运行,但在您单击“预览”按钮时也会运行,这样在预览屏幕中您总是可以看到最后的更改。

事情就是这样:

单击“预览”按钮,WordPress将当前帖子作为修订版存储在posts表中,该浏览器页面包含帖子url和preview_id, preview_noncepreview 查询参数已打开,WordPress从posts表中提取post对象,原因是preview 查询参数存在,WordPress验证当前用户是否已登录并具有适当的功能。如果以前的检查通过,WordPress将从数据库中提取最后一次发布修订,确保修订发布名称和发布作者与在点提取的发布对象的发布名称和发布作者相匹配44 将替换为修订后对象。除此之外,预览的处理方式与处理单个帖子的常规前端请求相同,但一旦用于显示页面的帖子对象从修订数据库行中取出,您就会看到最后一次(甚至未保存)帖子更改。

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果