
Dne 12. února byla vydána finální verze GenerateBlocks 2.0 (GB) po dlouhém cyklu, který začal 24. listopadu 2024 první verzí alpha.1, kterou jsem od začátku testoval.
Verze 2.0 je jednou z těch, které "pod kapotou" skrývají velká vylepšení pro dobrou optimalizaci stránek. Verze 2.0 umožňuje zachovat bloky verze 1.0, nebo se k nim dokonce vrátit, pokud je to nutné.
Přestože stále ještě ladí finální výkon a použitelnost, což je jejich nedokončená práce, se strmou křivkou učení, protože se zdá, že ještě nenašli "vizuální" rovnováhu konfigurací bloků, je to kompenzováno bezvadnou podporou a velmi kompletní dokumentací.
Tento blokový plugin, který vytvořil Tom Usborne, je velmi mladý. Je starý něco málo přes dva roky. Jeho verze 1.0 byla vydána 30. srpna 2022.
To však nebrání tomu, aby se společně s GeneratePress (GP) stal ideální kombinací pro návrh a/nebo tvorbu části nebo téměř celého designu WordPress, protože nabízí čistý, lehký a rychlý kód. Dodnes si jej vybírá velké množství uživatelů WordPressu, od "niche" až po domácí blogery.
Musíme zdůraznit, že GenerateBlocks není builder, jako Elementor nebo jiné takzvané "Site Buildery", i když může být použit jako takový, je to jiný přístup, který nemá nic společného s tradičním "drag and drop". Jedná se o blokový plugin.
Jestli je něco, co lze na GB+GP spravedlivě zhodnotit a pochválit, pak je to jejich podpora. Velmi dobře pochopili své uživatele a pokud jde o zákaznický servis, uhodili hřebíček na hlavičku. Z jejich fóra podpory můžete vyřešit téměř cokoli.
Pomohou vám i s problémy, které ne vždy souvisejí s chybami nebo pochybnostmi o používání, ale také s budováním nebo předěláváním konkrétních věcí. Vždy s přátelským a rozhodným jednáním. A nejlepší je, že všechny tyto dotazy, diskuse a řešení může konzultovat kdokoli, i když nepoužívá jejich placené verze.
To samo o sobě stojí za každý dolar, který zaplatíte za šablonu a blokový plugin.
Pro připomenutí a "poučení" do budoucna zde nechávám příklad řešení (a není první) jednoho z těchto dotazů na vašem fóru podpory, který mi umožnil dynamicky přeložit některé řetězce. Byly to ty poslední, které bylo třeba přeložit, a vzpíraly se.
Pro někoho se znalostí programování je to nejspíš jako drbání se na nose, ale pro pokročilé kutily se základními znalostmi, jako jsem já, je to skutečný dar.
Překlad textu z bloku GenerateBlocks "Text" pomocí jazyka Polylang
Zásuvný modul Polylang umožňuje registrovat řetězce a přidávat jejich odpovídající překlady, kamkoli chcete. K tomu stačí přidat řetězce takto do souboru functions.php tématu:
pll_register_string('Publicado:', 'Published:');
pll_register_string('Actualizado:', 'Updated:');
Proto se již objeví pro překlad ve skupině nazvané Polylang v části Jazyky/překlady:

To však nestačí, nyní je třeba každý z těchto překladů vyvolat pomocí kódu PHP, aby se zobrazil.
Úkolem je dynamicky překládat do každého jazyka řetězce Published: a Updated:, které jsem v té době přidal do prvku GP s blokem "Text" GB 2.0 (dříve nazývaným "Headline").
Structure of the GB Text block
Publicado: {{post_date}} | Actualizado: {{post_date type:modified}} |

Problém je v tom, že jsem nenašel způsob, jak přidat volání PHP Polylang, které by nahradilo tato dvě slova v závislosti na jazyce, ve kterém se stránka zobrazuje:
<?php echo pll__('Published:'); ?>
<?php echo pll__('Updated:'); ?>
Blok GB neprovádí kód PHP a nebylo možné jej vložit pomocí zkráceného kódu. V tuto chvíli jsem prohlásil, že nejsem schopen najít řešení a rozhodl jsem se konzultovat fórum podpory.
A po několika zprávách přišlo řešení.
1. Do bloku "Text" se přidá třída CSS. Pro tento příklad použijeme: my-post-dates

2- Tento filtr se přidá do souboru functions.php šablony:
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 );
A to je vše. Nyní se tato dvě slova zobrazí ve vybraném jazyce z těch, které používáte.
Tento příspěvek obsahuje dva partnerské odkazy.