跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

块:允许为所有支持的资产类型注册多个项目 #3108

对话

吉奥罗牌手表
复制链接
成员

@吉奥罗牌手表 吉奥罗牌手表 评论2022年8月18日

Trac票:https://core.trac.wordpress.org/tickt/56408

的一部分WordPress/gutenberg#41236。有关更多详细信息,请参阅WordPress/gutenberg#33542.

本公关受到了@阿达齐尔在里面#2853.

其思想是允许每个块有多个脚本用于编辑器脚本,脚本、和查看脚本在中块.json元数据文件。@亚里士多德已经为添加了该功能风格编辑器样式很久以前WordPress/gutenberg#32510。它使用Gutenberg使用的相同钩子被后端口到WordPress核心,这会导致类似中报告的问题WordPress/gutenberg#43086。在这里,对代码进行重构风格,编辑器样式因此在中本地支持多个资产工作包块类型类和REST API端点中的块类型。相同的实现被镜像到脚本:编辑器脚本,脚本查看脚本.

之前

{“editorScript”:"测试通知编辑器脚本",“脚本”:"测试-通知-脚本",“查看脚本”:"测试-通知-视图-脚本",“编辑器样式”:"测试-通知-编辑-样式",“样式”:"测试-通知样式"}

之后

{“editorScript”:"测试-通知-编辑-脚本",“脚本”:"测试-通知-脚本",“查看脚本”: ["测试-通知-视图-脚本","测试-通知-视图-脚本-2"],“编辑器样式”:"测试-通知-编辑-样式",“样式”: ["测试-通知样式","测试-通知-样式-2"]}

它是向后兼容的,可以处理字符串或字符串数组。这两种形式都可以用于任何资产类型。


此Pull请求仅用于代码审查。请将所有其他讨论保留在Trac记录单中。不要合并此Pull请求。请参见GitHub请求代码审查有关更多详细信息,请参阅《核心手册》。

'描述'=>__('编辑器脚本手柄.' ),
“type”=>数组(“string”,“null”),
'描述'=>__('编辑器脚本把手.' ),
“type”=>数组('数组“,”字符串','空'),
复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

这同样适用于与脚本和样式相关的所有字段。扩展REST API端点中字段的返回类型列表是一个突破性的更改吗?或者更新模式并发布开发说明就足够了?

如果没有这个补丁,就可以注册多个样式,但它是通过WordPress核心中的挂钩来处理的。实际上,这意味着只有第一个注册的样式通过RESTAPI公开,其余的样式将被忽略。如果引入数组将是一个突破性的更改,我们可以保持原有的不完美行为。

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

虽然我没有特殊的知识或经验可以提供,但根据我自己使用REST API的经验,我想我会考虑添加阵列对这些属性进行彻底的更改。使用开发注释进行更改可能仍然是可以接受的突破性更改,甚至可能会有添加的先例阵列到之前的属性。

我认为我与这个端点的(假设的)集成不太可能被设置为在以下情况下正确处理数组字符串|空一直到现在都是意料之中的。创建这些属性的“复数”版本是否可行(编辑器脚本,脚本等)支持数组,目的是取消现有的“单数”属性(请参见https://core.trac.wordpress.org/ticket/52629)?

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

@dlh01号机组,感谢您分享您的反馈。

我认为,我与该端点的(假设的)集成不太可能设置为在字符串|null之前正确处理数组。

这正是我在这里担心的。然而,理论上同样适用于工作包块类型以及它的属性。引入新属性可以解决一些问题,但也可能会产生另一组问题,我们可能需要保持单数和复数版本同步。除非,我们使用神奇的方法,比如__得到__套用于操作数组中第一项的多个字段。

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

响应中不推荐使用REST API字段的当前方式如下:

“旋转”=>阵列(
'描述'=> __('以度为单位顺时针旋转图像的量。弃用:改用“modifiers”),
“类型”=>'整数',
'最小值'=>0,
'排除最小值'=>真的,
'最大值'=>360,
'排除最大值'=>真的,
),
“x”=>阵列(
'说明'=> __('作为图像的百分比,开始裁剪的x位置。弃用:改用“modifiers”),
“类型”=>“数字”,
“最小值”=>0,
'最大值'=>100,
),
“是”=>阵列(
'说明'=> __('作为图像的百分比,开始裁剪的y位置。弃用:改用“modifiers”),
“类型”=>“数字”,
“最小值”=>0,
'最大值'=>100,
),
'宽度'=>阵列(
'说明'=> __('作为图像的百分比,将图像裁剪到的宽度。弃用:请改用`modifiers'。'),
'类型'=>“数字”,
“最小值”=>0,
'最大值'=>100,
),
“高度”=>阵列(
'说明'=> __('以图像的百分比表示要将图像裁剪到的高度。弃用:改用“modifiers”。'),
“类型”=>“数字”,
“最小值”=>0,
'最大值'=>100,
),

复制链接
贡献者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

+1表示引入新字段并取消旧字段–现有插件可能无法正确处理新值。供参考@spacedmonkey(空格键) @蒂莫西·巴科布斯

至于贬义,我认为你建议的描述方法很管用。无论如何,我没有发现其他很多例子:

>光盘文字印刷显影>git grep-i已弃用| grep rest

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

看起来我们在前进的道路上达成了一致,这确保了我们优化向后兼容性。我现在唯一关心的是如何命名新字段,因此我们消除了现有字段之间的歧义样式(块样式变化。)和风格(块类型前端和编辑器样式句柄。)。我们绝对不能重命名风格样式😞

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

可以把手在属性名称中使用?

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

伟大的思想@蒂莫西·巴科布斯,我们在那里存放的正是手柄👍🏻

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

我有一个工作原型f48b1c1。我仍然需要重构其余代码以使用新属性。

复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

一切都准备好进行最后审查了。

@吉奥罗牌手表 吉奥罗牌手表更改了标题块:允许为所有支持的类型注册多个资产 块:允许为所有支持的资产类型注册多个项目 2022年8月19日
@亚里士多德
复制链接
成员

亚里士多德 评论2022年8月19日

太棒了!非常感谢您为此所做的工作@齐奥罗👍
我还没有测试实现,但代码看起来很好,非常有意义🎉

@阿达齐尔
复制链接
贡献者

@齐奥罗以下block.json:

“样式”:[“wp-block-button”,“file:test.css”,“wp-column-block”]

生成以下HTML:

<链接 相对='样式表'身份证件='wp-块-按钮-css'href公司='http://localhost:8888/wp-包括/blocks/button/style.css?版本=6.1-alpha-20220819.130951'媒体='全部的' /><链接 相对='样式表'身份证件='wp-块-按钮2-css'href公司='http://localhost:8888/wp-包括/blocks/button/style.css?版本=6.1-alpha-20220819.130951'媒体='全部的' /><链接 相对='样式表'身份证件='wp-块-按钮-3-css'href公司='http://localhost:8888/wp-包括/blocks/button/style.css?版本=6.1-alpha-20220819.130951'媒体='全部的'/>

所以有些事情还不对劲。

@坚硬的
复制链接
贡献者

阿达齐尔 评论2022年8月19日

此代码位于寄存器块样式句柄替代原始样式路径:

	//检查样式是否应有“.min”后缀。
	$后缀=脚本_取消?“”:“最小值”;$样式uri=插件url($样式路径(_P),$元数据['文件'] );如果($是核心块) {$样式路径(_P)= "风格$后缀.css文件";$样式uri=包含url('块/'.str_替换(“核心/”,“”,$元数据[“名称”] ) . "/风格$后缀.css文件" );}

@吉奥罗牌手表
复制链接
成员 作者

吉奥罗牌手表 评论2022年8月19日

register_block_style_handle中的此代码覆盖原始样式路径:

@坚硬的,抓得好。很难修复,因为它现在只适用于现有的核心块,因为它总是以块为目标的样式,而后续的样式是用钩子处理的。如果有人更改订单,则会出现类似问题。似乎我们需要重新对核心块中的样式进行特殊处理,因此我们不再假设列表中的第一个样式句柄是该块的硬编码路径。

案例前缀为文件:将非常简单地排除在这种特殊处理之外。我想那种风格来自不同的街区“wp-列-块”可以尽早退出,因为它应该在其他地方注册。

@阿达齐尔
复制链接
贡献者

案例前缀为文件:将其排除在这种特殊处理之外将非常简单。我想那是另一个街区的风格“wp-列-块”可以尽早退出,因为它应该在其他地方注册。

对于依赖于其他块或类块元素的块来说,这可能是有意义的,例如搜索块可能希望包含按钮块的样式。

@吉奥罗牌手表
复制链接
成员 作者

吉奥罗牌手表 评论2022年9月13日

@吉奥罗牌手表以下block.json:

“样式”:[“wp-block-button”,“file:test.css”,“wp-column-block”]

生成以下HTML:

<link rel='stylesheet'id='wp-block-button-css'href='http://localhost:8888/wp-包括/blocks/button/style.css?ver=6.1-alpha-20220819.130951'媒体='all'/><link rel='stylesheet'id='wp-block-button-2-css'href='http://localhost:8888/wp-包括/blocks/button/style.css?ver=6.1-alpha-20220819.130951'媒体='all'/><link rel='stylesheet'id='wp-block-button-3-css'href='http://localhost:8888/wp-包括/blocks/button/style.css?ver=6.1-alpha-20220819.130951'媒体='all'/>

我处理核心块的方式如下:

  • 您只能像以前一样传递样式句柄,条目以开头文件:将被忽略
  • 只有通过的第一个样式句柄得到特殊处理
  • 其他样式句柄需要在其他地方注册

@吉奥罗牌手表
复制链接
成员 作者

@奥卡姆,此后台端口已准备就绪,但我正在等待其他反馈。如果它阻碍了将古腾堡的更改同步到WordPress核心,请告诉我。我很高兴提交这些更改,并在需要时稍后进行迭代。

@奥卡姆
复制链接
贡献者

@奥卡姆,此回传已准备好,但我正在等待其他反馈。如果它阻碍了将古腾堡更改同步到WordPress核心的进程,请告诉我。我很高兴提交这些更改,并在需要时稍后进行迭代。

谢谢,@吉奥罗牌手表! 看起来我们最终需要它取消阻止同步。我们还有一周的时间等待功能冻结--您认为有足够的时间获得反馈并进行潜在更改吗?如果不是,最好将其合并为-is,并在单独的问题/PR中迭代反馈😊

回报;
}

$new_name=$name。”_手柄';
复制链接
成员 作者

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

将来,我们可能希望使用类似以下的某种弃用机制_弃用的自变量用于函数/方法。这将是一个很好的机会,可以与那些仍在使用寄存器块类型传递具有不推荐使用的属性的数组,而不是块.json.如果块与块.json已经,它们将自动切换到新的类属性。

@吉奥罗牌手表
复制链接
成员 作者

@奥卡姆,此回传已准备好,但我正在等待其他反馈。如果它阻碍了将古腾堡更改同步到WordPress核心的进程,请告诉我。我很高兴提交这些更改,并在需要时稍后进行迭代。

谢谢,@吉奥罗牌手表! 看起来我们最终需要它取消阻止同步。我们还有一周的时间等待功能冻结--您认为有足够的时间获得反馈并进行潜在更改吗?如果不是,最好将其合并为-is,并在单独的问题/PR中迭代反馈😊

我提交了所有更改https://core.trac.wordpress.org/changeset/54155解除Gutenberg同步进程的锁定。我会看这张公关和Trac罚单,以获得进一步的反馈,并采取必要的行动。

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
还没有
项目
没有打开的项目
6名参与者