如果古登堡按钮为空,则在保存时移除

时间:2021-12-15 作者:Jenno Richi Benat

我的设计中有一些按钮并没有文本,这些按钮的图标设计在:标签的前面。

它在WP 5.5中工作得很好,但现在我已经在live中进行了更新,当我保存任何页面时,它会删除所有这些按钮。

我理解,因为它是空的,WP会在保存时删除它。有没有一种方法可以跳过一个块或跳过这个删除块的内容,因为我的大多数块都有空按钮,而live site无法编辑,因为它删除了所有的空按钮。

1 个回复
SO网友:Tom J Nowell

https://github.com/WordPress/gutenberg/pull/29717

此PR在前端呈现按钮块之前添加对按钮文本的检查。这可以防止在前端显示空。

What you are trying to do is considered a bug and was fixed in March 2021.

结果是空标签,导致验证和可访问性问题,以及各种主题中的样式问题。

这对易访问性和SEO也很糟糕,屏幕阅读器将没有文本解释按钮的作用,这也意味着搜索引擎爬虫也不会知道。图标按钮对许多有常见但无法识别问题的人来说也是无用的(例如,脸盲通常与没有伴随文本的图标的识别问题相关)。

我们可以解决这个问题,让按钮块没有文本吗No.

我已经运行了一些测试,似乎没有文本的按钮是不可能的,按钮块位于前端,但内部没有按钮块。

这并不是说WP删除了块,它根本就不存在,除非文本存在,否则按钮块没有表示,只是用户界面。

通过查看button blocks save函数,我们可以看到这一点,它所做的第一件事是检查按钮是否有文本,如果没有,则立即中止:

    if ( ! text ) {
        return null;
    }
这是对早期代码的优化,它也做了同样的事情。按钮块应该有文本,这是有意的,也是经过设计的。

我应该怎么做接下来的步骤是以下选项之一:

使用CSS隐藏按钮中的文本,向按钮添加块变体,添加HTML类,使其成为前端的图标按钮,使文本不可见并添加图标构建一个图标按钮块,而不是对现有块进行黑客攻击,以避免仅使用图标的块,因为它们的SEO/可访问性/可读性较差。最后一个选项将是最有效的,虽然图标块允许您添加其他选项,例如选择哪个图标等。但您可以使用按钮块本身作为起点。

社交共享/个人资料如果你想实现社交媒体图标列表/共享功能,那么WordPress已经有了这样的功能块,你不需要重新发明轮子。Use the Social Links block instead.

enter image description here

通过在高级面板中设置一个类(这实际上非常接近社交链接块的工作方式,谷歌/脸书/等都只是该块的变体,决定它的是属性/类的值),可以更轻松地交换该块的图标或有条件地执行该操作。

相关推荐

运行wp core安装时,wp-cli静默失败,错误为255

在Docker容器(circleci/php:最新)中工作,我有点难以使用wp cli。当我尝试跑步时wp core install 我收到一个带有255个退出代码的无声故障。我启用了--debug,希望获得更多信息,但不幸的是,我只能看到它在读取wp config后停止。php。circleci@142b5627c098:~/wordpress$ wp core install --url=example.com --title=\"Example\" --admin_user=admin --admi