生成块 2.0,块插件

 
生成块 2.0

从 2024 年 11 月 24 日发布第一个alpha.1版本开始,经过漫长的周期,我从一开始就在测试生成块 2.0(GB),最终版本于 2 月 12 日发布。

2.0 版是 "引擎盖 "下隐藏着巨大改进的版本之一,可保持网站的良好优化。2.0 版允许您保留1.0 版区块,甚至在需要时恢复到1.0 版区块。

虽然他们仍在对最终的性能和可用性进行微调,但这仍是他们未完成的工作,学习曲线也很陡峭,因为他们似乎还没有找到区块配置的 "视觉 "平衡,但无可挑剔的支持和非常完整的文档弥补了这一点。

汤姆-厄斯本制作的这个积木插件非常年轻。它只有两年多的历史。其 1.0 版本于 2022 年 8 月 30 日发布

但这并不妨碍它与GeneratePress(GP) 一起成为设计和/或构建部分或几乎全部 WordPress 设计的理想组合,因为它提供了简洁、轻便和快速的代码。时至今日,从 "小众 "博客到家庭博客,仍有大量 WordPress 用户选择它。

我们必须坚持说,GenerateBlocks并不是像 Elementor 或其他所谓的 "建站工具"那样的建站工具,尽管它可以被用作建站工具,但它是一种不同的方法,与传统的 "拖放 "毫无关系。它是一个块插件。

如果说 GB+GP 有什么值得评论和称赞的地方,那就是他们的支持。他们非常了解用户,在客户服务方面一针见血。在他们的支持论坛上,您几乎可以解决任何问题。

他们甚至可以帮助您解决与使用错误或疑虑无关的问题,还可以帮助您建造或重新设计特定物品。他们的态度总是友好而坚决。最重要的是,即使不使用付费版本,任何人都可以咨询所有这些问题、讨论和解决方案。

仅这一点,就值得你为模板和区块插件支付的每一美元。

作为提醒和对未来的 "再咨询",我在这里留下一个解决方案的例子(这不是第一个),在你们的支持论坛中,我可以动态翻译一些字符串。这些字符串是最后要翻译的字符串,它们一直在抵制翻译。

很可能,对于有编程知识的人来说,这就像挠痒痒,但对于像我这样有基础知识的高级修补匠来说,这就是真正的礼物。

使用 Polylang 翻译 GenerateBlocks "文本 "块中的文本

Polylang 插件允许您 注册字符串,以便在任何地方添加相应的翻译。要做到这一点,只需像这样在主题的functions.php 中添加字符串即可:

pll_register_string('Publicado:', 'Published:');

pll_register_string('Actualizado:', 'Updated:');

因此,它们已经出现在语言/翻译下名为 Polylang 的翻译组中:

生成块 2.0,块插件 1

但这还不够,现在您必须用 PHP 代码调用每个翻译才能显示它们。

任务是将我当时添加到带有 GB 2.0 "文本 "块(以前称为 "标题")的GP 元素中的字符串Published:Updated:动态翻译成每种语言。

Structure of the GB Text block

Publicado: {{post_date}} | Actualizado: {{post_date type:modified}} |
生成块 2.0,块插件 2

问题是我找不到添加 PHP Polylang 调用的方法,以根据页面显示的语言替换这两个词:

<?php echo pll__('Published:'); ?>
<?php echo pll__('Updated:'); ?>

GB 块不执行 PHP 代码,也无法用简码将其放入。此时,我宣布自己无法找到解决方案,并决定咨询支持论坛。

几条信息之后,解决方案就来了。

1.为 "文本 "块添加 CSS 类。在本例中,我们使用:my-post-dates

2-该过滤器添加在模板的functions.php中:

add_filter( 'render_block', function( $block_content, $block ) {
    if (  ! empty( $block['attrs']['className'] ) && 'my-post-dates' ===  $block['attrs']['className'] )  {
		
             $published = pll__('Published:');	
             $updated = pll__('Updated:');

            // Ensure these values are translated, fallback to default if empty
             $translated_published = !empty($published) ? $published : 'Published:';
             $translated_updated = !empty($updated) ? $updated : 'Updated:';

	     $block_content = str_replace('Publicado', $published, $block_content);
             $block_content = str_replace('Actualizado', $updated, $block_content);
     }

      return $block_content;
}, 10, 2 );

就是这样。现在,这两个单词将以您所选择的语言显示。

本帖包含两个联盟链接

Suscríbete para recibir los post en tu email sin publicidad

相关文章

Polylang 的五个实用片段

Polylang 的五个实用片段

使用 GeneratePress 在本地托管 Google 字体

使用 GeneratePress 在本地托管 Google 字体

使用 Polylang 翻译任意字符串

使用 Polylang 翻译任意字符串

Este blog se aloja en LucusHost

LucusHost, el mejor hosting