
Alex Standiford是AffiliateWP的一名WordPress开发者,他发布了一个他称之为 “几乎无头”(“nearly headless”)的WordPress主题的模板。它使用Underpin、Nicholas和AlpineJS为网站提供类似应用程序的体验,同时为使用PHP而不是Javascript渲染特定页面提供灵活性。
Standiford在一篇题为 “无头的WordPress被高估了:近乎无头的网络应用案例 “的文章中,描述了完全无头的一些缺点。
完全无头的WordPress的一个问题是路由。在幕后,WordPress有很多内置的逻辑来处理路由,而用无头的方法,你必须在前端建立一些东西来处理这些。最终,你重新发明了轮子,而且需要大量的额外时间来建立。
在你尝试使用大多数WordPress插件的时候,无头WordPress的另一个问题很快就变得明显了。丑陋的事实是,你通常必须重新发明很多东西,只是为了让插件正常工作。
Standiford的几乎无头的系统是他重新思考无头WordPress的产物。他想保留像应用程序一样的感觉,以及WordPress的所有内置功能和那些通过插件系统提供的功能。
近乎无头的WordPress主题使用AlpineJS进行渲染,Standiford说它很轻,容易理解,而且 “与PHP服务器端的渲染发挥得特别好”。它是围绕着HTML模板标签加载的,这些标签使用WordPress的REST API来获取文章内容。该系统使用会话存储来保持速度,并尽量减少REST API调用的数量。
Standiford的WP Dev Academy学习网站和他的机构DesignFrame Solutions都在使用测试版的几乎无头系统。自从这些网站开发以来,Standiford已经完全重写了系统,并根据他从早期版本中学到的东西进行了重大改进。他在 nearly-headless.dev 网站上提供了当前版本的实时演示。
![图片[2]-新的模板加快了构建 “近乎无头”的WordPress主题的速度-搬主题](https://cdn.banzhuti.com/2021/08/20210818090959117.png)
由于Standiford的Nicholas库包括客户端缓存和路由层作为主题的应用支持,这种几乎无头的方法在性能上与传统的无头方法相当。
“Nicholas将通过REST加载内容,很像无头网站的做法,”Standiford说。”在这些情况下,加载时间与你在无头网站上看到的情况非常相似。事实上,他们的行为和基本工作方式是一样的。关键是尼古拉斯在页面被访问后还将数据存储在会话存储中,此后任何时候加载该页面,都是即时加载。”
该模板能带你走多远?使用它的开发者应该准备好扩展或替换它所包含的基本模板来加载WordPress。它不排队任何CSS。关键功能被分成独立的依赖关系,所以用户可以随着项目的发展而保持最新的状态。
“就所有的意图和目的而言,模板是一块白板,”Standiford说。”你可以把模板看成是几乎无头的方法的_s。所有的依赖性、脚本和运行引擎所需的项目都包含在模板中。所有的依赖都被打包在Composer或Node中,所以你的主题可以随着系统的改进而更新,而不需要重新编写你的整个主题。”
Standiford对模板的未来有一些重大的改进计划。它目前与块状编辑器和许多插件兼容,但需要一个兼容模式。
“最大的前期改进将是在尽可能多的页面上消除对兼容模式的需求,”Standiford说。”许多块库、表单插件和其他东西都有特定的脚本,它们希望在页面上加载,而应用程序没有办法知道,正因为如此,如果不打开兼容模式,一些插件就无法工作。让这些东西工作是可能的,但我将受益于插件开发者的帮助,以帮助我了解应用程序运行时需要包括哪些样式/脚本。”
Standiford说他看到了一个机会,可以创建集成其他插件的npm包,并确保它们按预期工作。
“他说:”例如,Yoast和其他SEO插件在每个页面的头部设置SEO信息,而现在,如果不编写另一块中间件,就不会发生这种情况。”添加它并不难,但它是那些可以打包并包含的东西之一,而不是为每个使用这种方法的主题手动编写。”
Nearly Headless WordPress主题模板路线图上的另一个项目是改进依赖关系的编译方式,以更好地避免插件和主题冲突。Standiford认为这将使在WordPress.org目录上分发使用这种方法构建的主题变得更加容易,甚至可以在商业上出售它们。他还一直在试验在页面加载时自动缓存所有的内容,而不会使浏览器陷入困境或使服务器的请求过载。其结果是在减少服务器负载的情况下实现即时的页面加载。
近乎无头的WordPress主题模板可以在GitHub上找到,Standiford还在创建一个课程,帮助开发者使用这种近乎无头的范式建立网站。他预计该课程将在2021年11月发布。
























暂无评论内容