跳到内容
新问题

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

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

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

字体库:无法安装任何字体时保留字体系列文章类型 #59486

正常开放
彼得威尔逊公司已打开此问题2024年3月1日·16条评论
正常开放
标签
[功能]字体库 [类型]Bug 现有功能无法按预期工作

评论

@彼得威尔逊公司
复制链接
贡献者

描述

尝试通过字体管理器上传或安装字体时,即使没有成功上传字体,字体系列帖子类型也会保留。

这将导致没有变体的字体系列列表。但是,一旦可以打开字体系列,默认情况下将显示正常的字体粗细,允许用户激活它并在侧栏中选择它。

如果没有字体成功上传,那么应该删除font-family帖子。

分步复制说明

  1. 修改WP_REST_Font_Faces_Controller::handle_Font_file_upload()只需返回WP_错误对象
    受保护的 功能 handle_font_file_upload(处理文件上传)($文件) {返回 新的 WP_错误(“rest_font_error”,'无上传');}
  2. 打开站点编辑器>样式>排版>排版管理器>安装
  3. 选择要安装的字体,单击安装按钮
  4. 将显示提取错误
  5. 返回“已安装的字体”选项卡
  6. 包括字体系列,显示未安装任何变体
  7. 单击字体系列可邀请用户激活正常粗细字体
  8. 返回侧栏,用户可以在各种元素上启用字体

屏幕截图、屏幕录制、代码片段

无足迹

环境信息

请确认您已经搜索了回购中的现有问题。

是的

请确认您已测试除古腾堡外的所有插件。

是的

@彼得威尔逊公司 彼得威尔森立方厘米补充[类型]Bug 现有功能无法按预期工作 [功能]字体库标签2024年3月1日
@安娜扎祖 安娜扎祖更改了标题字体系列帖子类型在无法显示所有字体时保留。显示可用的正常重量。 字体库:无法安装任何字体时保留字体系列帖子类型 2024年3月4日
@米卡琴
复制链接
成员

我不能在古腾堡主干上复制这个,尽管我相信它应该被修复#59451,因为该请购单会检查是否添加了新的字体系列,并将卸载/删除如果没有为字体系列成功上载字体。

你能看到古腾堡行李箱的问题吗?

@格特戴夫
复制链接
贡献者

虽然我认为应该由#59451,

…值得注意的是,这将与WP Core同步,作为计划于明天进行的WP 6.5 RC 1的一部分。

@马蒂亚斯贝内代托
复制链接
贡献者

我不能在古腾堡主干上复制这个,尽管我相信它应该被修复#59451

我想这是由#59436

@米卡琴
复制链接
成员

我想这是由#59436

看起来这也将包括在WP 6.5 RC1中。

@安娜扎祖
复制链接
贡献者

令人惊叹的。从6.5中删除:)

@彼得威尔逊公司
复制链接
贡献者 作者

已验证:如果所有字体都无法上载,则字体系列不可用。


然而,如果数据库中有没有孩子的字体系列帖子,我仍然可以使用Normal字体

  1. 通过谷歌安装Open Sans
  2. 运行wp-cli命令删除字体:wp post删除$(wp post-list--post_type='wp_font_face'--format=ids)--force
  3. 刷新站点编辑器,转到排版管理器
  4. 能够启用Open Sans Normal并在站点编辑器中使用

屏幕截图,请注意,Firefox开发工具中的系统字体带有下划线,表示活动字体。

屏幕截图2024-03-05上午10时57分26秒

我应该把它作为一个单独的问题记录下来,还是你想解决这个问题?

@马蒂亚斯贝内代托
复制链接
贡献者

然而,如果数据库中有无子字体系列的帖子,我仍然可以使用Normal字体
通过谷歌安装Open Sans
运行wp-cli命令删除字体:wp-post-delete$(wp-post list--post_type='wp_font_face'--format=ids)--force
刷新站点编辑器,转到排版管理器
能够启用Open Sans Normal并在站点编辑器中使用

使用#59436我们正在确保使用字体库UI的用户不会在无意中得到没有字体的字体系列。使用低级方法(如您的示例中的方法),我们不能假设用户的意图,我认为我们不应该删除已删除字体的字体族父项。如果用户使用这些低级命令来操作安装的字体,最好让他们使用类似的命令手动删除字体系列。

@彼得威尔逊公司
复制链接
贡献者 作者

使用#59436我们正在确保使用字体库UI的用户不会在无意中得到没有字体的字体系列。

这就是我要说的,如果没有子字体,字体系列仍然会出现在UI中。这就是为什么开发工具在屏幕截图中显示默认的无衬线字体

在复制步骤中使用WP CLI命令可以方便开发人员进行复制。由于font-face REST API端点没有删除无子font-families,因此也可以使用推荐的技术删除字体。

@pbking公司
复制链接
贡献者

pbking公司 评论2024年3月6日

没有字体外观的字体系列仍然是合法的字体系列,它只是一种系统字体。当然,这个问题没有帮助,但没有与之相关联的字体不会成为将其从API响应中排除或删除的理由。

这很棘手,解决方案也不清楚。

@马蒂亚斯贝内代托
复制链接
贡献者

马蒂亚斯贝内代托 评论2024年3月6日

问题描述中的视频不再准确描述字体库的行为#59436已合并。但是,如果您安装了一个字体系列,但所有字体都无法安装,那么如果它以前安装在中,它仍会列在字体库中#59436已合并。这是因为没有安装字体的字体系列(系统字体)是有效的字体系列,因此应该列出它们。

之后#59436“已合并”是指所有未能安装的字体,字体系列将在创建后立即删除,字体创建失败。

以下是本期描述中详细介绍的步骤的屏幕广播,您可以从中看到:

2024-03-06.10-49-58英里4

此评论中的示例#59486(评论)似乎无效,因为不应假定扩展程序的意图是低级数据操作,所以不应删除字体系列,而应列出字体系列,因为没有关联字体面的字体系列是有效的字体(系统字体堆栈)。

在我看来,这个问题应该解决,因为已经解决了。

@彼得威尔逊公司
复制链接
贡献者 作者

正如我所说,低级操作为开发者提供了复制的便利。它允许我避免需要应用程序密码等的指令。

删除字体时,可以从两个数据源确定字体系列是web-font还是本地字体:

  • 这个_wp_font_face文件后元
  • 这个型钢混凝土帖子内容的属性

如果字体上有这些项,那么保留字体系列就是在排版侧栏中显示用户无法使用的字体。他们得到的不是预期的字体,而是系统默认的字体。如果库通过SVG显示正确格式的字体预览,则用户会更加困惑。

@马蒂亚斯贝内代托
复制链接
贡献者

@彼得威尔逊公司我不确定目前的问题是什么。该问题的原始视频已过时。请您添加一个新的视频,介绍您认为该问题是什么?

@格特戴夫
复制链接
贡献者

我阅读了本次讨论,试图了解关注点。我的理解如下:

  • 曾经有过以前即使没有安装Font Faces,Font Families仍会列在库中的问题(例如,安装期间发生错误)。
  • 此问题已在中解决避免创建没有字体面的字体系列。 #59436通过确保如果字体安装失败,则从数据库中删除字体系列。
  • 然而,如果数据库中存在字体系列帖子,即使没有与之关联的字体面,它仍会显示在字体库中。
  • 对于是否应将此归类为问题,存在分歧。

反对这是一个bug的论点

  • 使用编辑器中的字体库UI,不可能以“空”字体系列结束。
  • 在不使用UI的情况下,使用CLI、REST(.etc)删除Font Face帖子意味着我们无法保证用户意图.
  • 以这种方式手动删除帖子不是通常情况下WordPress用户不会这么做。
  • 因此,如果有人选择以这种方式操纵帖子,我们无法保证他们打算做什么。
  • 因此,我们不应该假设用户界面字体库的。
  • 还有一种观点认为,没有字体外观的字体系列仍然是合法的字体系列,它只是一种系统字体。

支持这是一个有效错误的参数

  • 同意不再可能使用字体库UI以“空”字体家族帖子结束
  • 参数是WP软件中仍然存在方法(REST API、CLI等),这些方法允许您以没有关联字体外观帖子的字体系列帖子结束。
  • 如果可以使用该软件以空字体系列结束,则UI必须考虑到这一点,但必须隐藏这些。
  • 列出没有字体字体的字体系列帖子可能会让用户感到非常困惑。

我将继续调查此事。同时,我欢迎Editor发布线索提供意见,说明他们是否会认为这是一个bug。复写的副本@法比安凯 @安娜扎祖 @你知道riad.

@彼得威尔逊公司
复制链接
贡献者 作者

回到这里,我注意到字体系列列在排版侧栏中,即使删除了字体系列帖子类型:

  1. 上传几种不同的字体类型
  2. 不要将字体应用于任何块、样式或其他内容。字体存在,因为全局样式未使用帖子类型位
  3. 运行wp post delete$(wp post-list--post_type='wp_font_face',wp_font_family'--format=ids)--force删除所有字体和字体系列帖子类型
  4. 重新加载站点编辑器
  5. 打开样式>排版

上午10时48分51分截屏2024-03-15

@彼得威尔逊公司
复制链接
贡献者 作者

彼得威尔逊公司 评论2024年3月14日

长形式UI步骤

  1. 激活2024
  2. 通过modal上传几个字体(屏幕截图中的Open Sans、Nato)
  3. 保存主题
  4. 切换到2023年
  5. 通过model完全删除字体
  6. 保存主题
  7. 切换回2024年
  8. 转到样式>排版
  9. 侧栏中列出了不可用的字体

这也适用于前面的注释。

我认为可能需要这样做:

  • 确保全局样式中列出的字体系列具有相关的字体系列和字体外观帖子类型
  • 在排版侧边栏、块样式和其他地方显示字体之前也是如此
  • 如果站点所有者将非主题提供的字体应用于块/样式功能,则应将字体系列声明为:font-family:“上传字体”,“主题默认字体”,system-font;--我认为这可以在CSS变量中完成

@彼得威尔逊公司
复制链接
贡献者 作者

我已经打开了#59974因为它似乎是全局样式和字体库之间的交互。

我仍然认为这个问题还有改进的余地,并且可以得出结论,一旦删除了所有子font-face帖子类型,就可以删除font-facy帖子类型。

我使用System字体和字体库进行了测试,使用matiasbenedetto/modern-fonts-stacks-for-wp-font-library公司并且系统字体只创建字体系列帖子类型,而不创建任何字体面帖子类型。

如果字体存在并且_wp_font_face文件post-meta存在,那么我认为删除字体系列是安全的&最好的建议。

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
[功能]字体库 [类型]Bug 现有功能无法按预期工作
项目
还没有
开发

没有分支或拉请求

6名参与者