
12 февраля вышла финальная версия GenerateBlocks 2.0 (GB) после долгого цикла, начавшегося 24 ноября 2024 года с первой версии alpha.1, которую я тестировал с самого начала.
Версия 2.0 - одна из тех, что скрывает "под капотом" значительные улучшения для оптимизации сайтов. Версия 2.0 позволяет сохранить блоки версии 1.0 или даже вернуться к ним, если это необходимо.
Хотя они все еще дорабатывают окончательную производительность и удобство использования - это еще их незаконченное дело, с крутой кривой обучения, поскольку они, кажется, еще не нашли "визуальный" баланс конфигураций блоков, это компенсируется безупречной поддержкой и очень полной документацией.
Этот блок-плагин, созданный Томом Усборном, очень молод. Ему чуть больше двух лет. Его версия 1.0 была выпущена 30 августа 2022 года.
Это не помешало ему вместе с GeneratePress (GP) стать идеальным комбо для разработки и/или создания части или почти всего дизайна WordPress, поскольку он предлагает чистый, легкий и быстрый код. И по сей день его выбирает большое количество пользователей WordPress, от "нишевых" до домашних блоггеров.
Мы должны настаивать на том, что GenerateBlocks - это не конструктор, как Elementor или другие так называемые "конструкторы сайтов", хотя он может быть использован как таковой, это другой подход, который не имеет ничего общего с традиционным "перетаскиванием". Это плагин для создания блоков.
Если и есть что-то, за что можно справедливо похвалить GB+GP, так это их поддержка. Они очень хорошо поняли своих пользователей и попали в точку, когда дело доходит до обслуживания клиентов. На их форуме поддержки вы можете решить практически любую проблему.
Они помогут вам даже в тех вопросах, которые не всегда связаны с ошибками или сомнениями в использовании, они также помогают, когда речь идет о создании или перепроектировании конкретных вещей. Всегда дружелюбно и решительно. И самое приятное, что все эти вопросы, обсуждения и решения могут быть доступны любому, даже если он не использует платные версии.
Одно это стоит каждого доллара, который вы заплатите за шаблон и плагин блока.
В качестве напоминания и "рекогносцировки" на будущее оставляю здесь пример решения (и не первого) одного из таких запросов на вашем форуме поддержки, который позволил мне динамически перевести несколько строк. Их нужно было перевести последними, и они сопротивлялись.
Скорее всего, для человека, разбирающегося в программировании, это все равно что почесать нос, но для продвинутых мастеров с базовыми знаниями, вроде меня, это настоящий подарок.
Перевод текста из блока GenerateBlocks "Text" с помощью Polylang
Плагин Polylang позволяет регистрировать строки, чтобы добавлять соответствующие им переводы куда угодно. Для этого просто добавьте строки в functions.php темы в таком виде :
pll_register_string('Publicado:', 'Published:');
pll_register_string('Actualizado:', 'Updated:');
Таким образом, они уже будут отображаться для перевода в группе под названием Polylang в разделе Языки/переводы:

Но этого недостаточно, теперь нужно вызвать каждый из этих переводов с помощью PHP-кода, чтобы отобразить их.
Задача состоит в том, чтобы динамически переводить на каждый язык строки Published: и Updated:, которые я в свое время добавил в GP-элемент с блоком GB 2.0 "Текст" (ранее называвшимся "Заголовок").
Structure of the GB Text block
Publicado: {{post_date}} | Actualizado: {{post_date type:modified}} |

Проблема в том, что я не смог найти способ добавить вызовы 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 );
Вот и все. Теперь эти два слова будут отображаться на языке, выбранном из используемых вами.
Этот пост содержит две партнерские ссылки.