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