블록 생성 2.0, 블록 플러그인

No comments

 
GenerateBlocks 2.0

2024년 11월 24일 첫 번째 알파 1 버전으로 시작된 긴 주기를 거쳐 2월 12일, 제가 처음부터 테스트해 온 GenerateBlocks 2.0 (GB)의 최종 버전이 출시되었습니다.

버전 2.0은 사이트 최적화를 위해 "보닛 아래"에 큰 개선 사항을 숨겨둔 버전 중 하나입니다. 버전 2.0을 사용하면 버전 1.0 블록을 유지하거나 필요한 경우 버전 1.0으로 되돌릴 수도 있습니다.

아직 블록 구성의 '시각적' 균형을 찾지 못해 가파른 학습 곡선을 그리며 최종 성능과 사용성을 미세 조정하고 있지만, 완벽한 지원과 매우 완벽한 문서로 이를 보완하고 있습니다.

톰 어스본이 만든 이 블록 플러그인은 매우 젊습니다. 출시된 지 2년이 조금 넘었습니다. 1.0 버전은 2022년 8월 30일에 출시되었습니다.

그렇다고 해서 깔끔하고 가볍고 빠른 코드를 제공하기 때문에 GeneratePress (GP)와 함께 워드프레스 디자인의 일부 또는 거의 모든 부분을 디자인하거나 구축하는 데 이상적인 조합이 되는 것을 막지는 못했습니다. 오늘날까지도 "틈새 시장"에서 홈 블로거에 이르기까지 많은 워드프레스 사용자들이 선택하고 있습니다.

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 요소에 추가한 게시:업데이트: 문자열을 각 언어로 동적으로 번역하는 것이 임무였습니다.

Structure of the GB Text block

Publicado: {{post_date}} | Actualizado: {{post_date type:modified}} |
블록 생성 2.0, 블록 플러그인 2

문제는 페이지가 표시되는 언어에 따라 이 두 단어를 대체할 수 있는 PHP 폴리랑 호출을 추가할 방법을 찾지 못했다는 것입니다:

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

GB 블록은 PHP 코드를 실행하지 않으며 단축코드로 넣을 수도 없었습니다. 이 시점에서 저는 해결책을 찾을 수 없다고 선언하고 지원 포럼에 문의하기로 결정했습니다.

그리고 몇 번의 메시지 끝에 해결책이 도착했습니다.

1. 텍스트" 블록에 CSS 클래스를 추가합니다. 이 예에서는 다음과 같이 사용합니다.

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 );

그게 다입니다. 이제 이 두 단어가 사용 중인 언어 중에서 선택한 언어로 표시됩니다.

이 게시물에는 두 개의 제휴 링크가 포함되어 있습니다.

Suscripción por email

관련 문서

폴리랑에 유용한 5가지 스니펫

폴리랑에 유용한 5가지 스니펫

생성 프레스로 로컬에서 Google 글꼴 호스팅하기

생성 프레스로 로컬에서 Google 글꼴 호스팅하기

Polylang으로 모든 문자열 번역

Polylang으로 모든 문자열 번역

Leave a Comment

Este blog se aloja en LucusHost

LucusHost, el mejor hosting