使WordPress成为核心

开的4个月前

上次修改时间13天前

#61205 新的 功能请求

在theme.json中添加对主题资产相对路径的支持

报告人: ramonopoly简介 垄断 所有者:
里程碑: 等待审查 优先: 正常的
严重程度: 正常的 版本:
组件: REST API 关键词:
重点: rest-api(rest-api) 复写的副本:

描述(上次修改者垄断)

最终目标是允许主题开发人员向theme.json中的资产添加相对路径。

例如,

{“$schema”:“https://schemas.wp.org/trunk/theme.json",“版本”:2,“设置”:{“appearanceTools”:true},“样式”:{“背景”:{“背景图像”:{“url”:“img/untitled.png”}}}}

这是一个优势,因为主题可以跨WordPress实例保持可移植性。

这些路径必须解决,最好是通过获取主题文件uri以便子主题可以继承和/或覆盖资产路径。

解析的绝对路径将用于CSS输出。

为了跨状态保存theme.json对象,以便解析路径不会保存到WordPress数据库(例如作为用户样式或样式修订),解析路径只应在输出CSS时使用。

这对于前端和编辑器都是如此。

在前端,文件解析可能发生在wp_get_global样式表.

然而,在编辑器中,没有等价于获取主题文件uri在客户端JS代码中。

因此,为了在编辑器中保持性能,我认为解析PHP中的相对路径并将其作为全局样式REST API控制器的一部分发送到前端会很有用:WP_REST_全局_样式_控制器_古腾堡WP_REST_全局_样式_修订_控制器,通过中的公共静态方法WP_主题_JSON_解析器处理文件分辨率。

本古腾堡PR:
背景图片:在顶级主题中添加对相对主题路径URL的支持。json styles#61271

演示了概念验证。

就这种方法或实现目标的替代途径获得建议将是有帮助的。

谢谢您!

更改历史记录(5)

这张票是在松弛(Slack)在ramonopoly的core-restapi中。查看日志.


4个月以前

#2 @垄断
4个月以前

因此,为了在编辑器中保持性能,我认为解析PHP中的相对路径并将其作为全局样式REST API控制器的一部分发送到前端会很有用:

概念证明我在回复中添加了以下内容:

“链接(_L)”:{“wp:theme-file-uris”:[{“name”:“img/budge3.jpg”,“href”:“http://localhost:8888/wp-content/themes/emptythemes/img/budgie3.jpg“,“target”:“styles.background.background Image.url”,“type”:“图像/jpeg”}]}

“href”、“type”和“name”是HAL保留的属性。“target”是一个有效的链接属性,我添加了它来表示theme.json树中需要替换的值的路径。

一些响应是全局样式对象的集合。例如WP_REST_Global_Styles_Controller_Gutenberg::get_theme_itemsWP_REST_Global_Styles_Revisions_Controller::获取条目。因此,无法将属性添加到顶级响应。

为了避免这种情况,我添加了_链接集合中的每个项目。

我建议将另一个自定义属性添加到全局样式对象架构如果人们认为图像URI的链接不应该存在_链接。我倾向于认为HAL有足够的灵活性来适应,但也乐于倾听他人的想法。

上次编辑时间4个月前通过垄断(以前的)(差异)

#3 @垄断
4个月以前

#4 @垄断
4个月以前

然而,在编辑器中,客户端JS代码中没有与get_theme_file_uri等效的代码。

有一个尝试实现一个但是,异步代码的性质意味着不能同步生成CSS。

这张票是在松弛(Slack)joesimpsonjr的可访问性。查看日志.


4个月以前

注:请参阅TracTickets公司有关使用的帮助门票。