WordPress 5.4 준비: 개발자가 알아야 할 테마 및 플러그인 변경 사항

게시 됨: 2020-03-05

WordPress 5.4의 출시가 다가오면서 플러그인 및 테마 개발자가 확장 기능을 테스트하고 문제가 없는지 확인해야 할 때입니다. 향후 기능을 위한 새로운 API도 있습니다. 어제 핵심 팀은 5.4의 첫 번째 릴리스 후보를 발표했습니다. 정식 출시는 3월 31일 예정이다.

이 게시물은 개발자가 앞으로 몇 주 동안 염두에 두어야 할 몇 가지 중요한 변경 사항에 대한 링크가 포함된 빠른 가이드 역할을 합니다. 플러그인과 테마를 테스트하십시오.

테마 개발자

블록 편집기를 통해 사용 중인 새 소셜 아이콘 블록의 스크린샷.
새로운 소셜 아이콘이 차단됩니다.

테마 작성자가 테스트하려는 몇 가지 변경 사항이 있습니다. WordPress 5.4에는 몇 가지 추가 테마 기능이 있습니다. 또한 프런트 엔드 및 블록 편집기에서 테마 디자인을 손상시킬 수 있는 몇 가지 마크업 관련 변경 사항이 있습니다. 불행히도 여러 버전의 WordPress를 지원하려는 테마 작성자의 경우 이러한 변경 중 일부는 약간의 추가 CSS 팽창을 의미할 수 있습니다.

소셜 아이콘 및 버튼 블록

WordPress 5.4에는 소셜 아이콘과 버튼이라는 두 가지 새로운 블록이 도입되었습니다. 소셜 아이콘 블록을 사용하면 사용자가 최대 40개의 다른 소셜 네트워크에 대한 아이콘/링크를 삽입할 수 있습니다. 버튼 블록을 사용하면 사용자가 여러 버튼 블록을 그룹화할 수 있습니다. 사용자 정의 블록 편집기 스타일을 출시하는 테마 작성자는 이러한 새 블록이 올바르게 출력되는지 확인해야 합니다.

사용자 정의 그라디언트 사전 설정 만들기

새로운 Gradients API를 통해 테마 작성자는 사용자가 그룹 또는 버튼 블록과 함께 사용할 사용자 정의 그라디언트 사전 설정을 정의할 수 있습니다. 테마 작성자는 기본 그라디언트 사전 설정인 눈에 거슬리는 부분을 개선하기 위해 약간의 노력을 기울여야 합니다. 약간의 작업으로 그라디언트는 사용자가 마음대로 사용할 수 있는 유용한 도구가 될 수 있습니다. 테마 작성자는 그라디언트를 지원하지 않으려는 경우 그라디언트를 완전히 비활성화할 수도 있습니다.

블록 편집기 마크업 및 스타일 변경

특정 편집기 클래스를 직접 대상으로 하는 테마 작성자는 블록 편집기 스타일을 확인해야 합니다. Editor- 접두사가 있는 많은 클래스가 block-editor- editor- 를 사용하도록 변경되었습니다. .edit-post-layout__content 클래스가 있는 래퍼 요소가 완전히 제거되었습니다. 여러 래퍼 요소가 블록 및 서식 있는 텍스트 구성 요소에서 제거되었습니다. Core의 기본 제공 패딩 및 블록의 음수 여백이 리팩토링되었으며 이는 환영할만한 추가 사항입니다. 아마도 테마 작성자는 프런트 엔드와 일치하는 기본 작업 레이아웃을 제공하기 위해 더 이상 여러 중첩 선택기와 싸울 필요가 없을 것입니다.

이러한 변경 사항은 이미 내가 본 몇 가지 테마를 깨뜨렸습니다. 많은 테마 작성자가 블록 편집기 스타일을 업데이트해야 할 가능성이 높습니다.

테마 검토 팀이 사용자 정의 편집기 스타일로 테마를 제출할 테마 작성자를 더 많이 요구할 때 클래스 및 마크업에 대한 이러한 유형의 변경은 자신감을 향상시키지 못합니다. 테마 개발자는 지는 싸움을 하고 있는 것처럼 쉽게 느낄 수 있습니다. 그러나 편집기 마크업을 프런트 엔드와 일대일 일치에 가깝게 만들기 위한 작업이 진행 중입니다. 어느 시점에서 테마 작성자는 여러 버전의 WordPress에서 사용자를 지원하면서 이러한 종류의 변경을 더 이상 처리할 필요가 없기를 바랄 뿐입니다. 현재로서는 다소 혼란스러운 과도기 단계에 있습니다.

캘린더 마크업 및 수업 변경

핵심 팀은 캘린더 위젯에도 영향을 미치는 get_calendar() 함수의 마크업을 변경했습니다. 달력 출력에는 더 이상 <tfoot> 요소가 없습니다. 대신 이전 및 다음 달 링크가 <table> 요소 아래의 <nav> 요소로 이동되었습니다.

캘린더 출력은 또한 여러 ID 및 클래스를 추가하거나 변경합니다.

  • .wp-calendar-table 이 래퍼 요소에 추가되었습니다.
  • .wp-calendar-nav 가 탐색 래퍼 요소에 추가되었습니다.
  • .wp-calendar-nav-next 는 다음 달 링크의 #next ID를 대체합니다.
  • .wp-calendar-nav-prev 는 이전 달 링크의 #prev ID를 대체합니다.

이것은 주요 변경 사항입니다. 이전 HTML 또는 ID를 대상으로 하는 모든 사용자 정의 CSS를 업데이트해야 합니다.

블록 개발자

블록 플러그인 생성을 위한 초기 코드를 보여주는 코드 편집기의 스크린샷.
블록 스캐폴딩 스크립트에 의해 생성된 초기 JavaScript 파일입니다.

사용자 정의 블록을 생성하는 플러그인 개발자를 위해 WordPress 5.4에는 블록 시스템 작업을 위한 몇 가지 새로운 API와 도구가 도입되었습니다.

블록 비계

개발자는 블록 플러그인을 빠르게 생성할 수 있는 새로운 NPM 패키지를 제공합니다. npm init @wordpress/block <plugin-name> 의 단일 명령으로 스크립트는 새 디렉토리를 만들고 블록 플러그인을 빌드하는 데 필요한 적절한 PHP, CSS 및 JavaScript 파일을 빌드합니다. 개발자는 기본적으로 최신 JavaScript 도구를 사용하거나 선택적으로 ES5 버전을 사용하도록 선택할 수 있습니다.

블록 스캐폴딩 패키지의 의도는 플러그인 작성자가 결국 공식 블록 디렉토리에 들어갈 단일 블록 플러그인을 빌드하는 것입니다.

블록 컬렉션 API

Block Collections API는 카테고리와 유사하게 작동합니다. 그러나 네임스페이스를 기반으로 합니다. 플러그인 개발자가 사용자 지정 컬렉션을 등록하면 컬렉션 네임스페이스를 공유하는 모든 블록이 블록 삽입기의 사용자 지정 섹션 아래에 나타납니다. 이것은 블록을 구성하는 더 현명한 방법인 것 같습니다. 블록 라이브러리를 생성하여 자동으로 그룹화하는 플러그인에 유용할 것입니다.

블록 변형 API

새로운 블록 변형 API를 사용하면 블록 개발자가 기본적으로 변형이 있는 블록 복사본을 만들 수 있습니다. 등록된 각 변형은 사용자가 선택할 수 있도록 블록 삽입기에 별도의 블록으로 나타납니다.

이 기능의 좋은 예는 새로운 소셜 아이콘 블록입니다. 다양한 소셜 네트워크를 위한 40가지 변형이 있는 단일 블록입니다.

기타 개발자 관련 변경 사항

플러그인과 테마 개발 영역을 넘나드는 몇 가지 다른 변경 사항이 있습니다.

새로운 탐색 메뉴 후크

기다리고 기다리며 기다린 끝에 마침내 개발자는 탐색 메뉴 관리 화면 및 사용자 정의 도구에 사용자 정의 필드를 추가하기 위해 자주 요청하는 몇 가지 후크를 얻게 되었습니다. 적어도 한 장의 티켓은 9년 전으로 거슬러 올라가지만, 안 하는 것보다는 늦는 것이 좋습니다. 과거에는 개발자가 사용자 지정 워커 클래스를 사용하여 필요한 사용자 지정 작업을 수행해야 했습니다. 그러나 한 번에 하나의 워커 클래스만 사용할 수 있으므로 변경한 여러 플러그인이 함께 작동하지 않습니다.

핵심 팀은 개별 메뉴 항목의 "이동" 버튼 앞에 나타나는 탐색 메뉴 관리 화면에 새로운 wp_nav_menu_item_custom_fields 후크를 추가했습니다. 관리자와의 패리티를 위해 탐색 메뉴 항목에는 사용자 지정 프로그램에 새로운 wp_nav_menu_item_custom_fields_customize_template 이 있습니다. 이 후크를 통해 개발자는 탐색 메뉴 항목에 사용자 지정 데이터를 추가하는 데 필요한 사용자 지정 양식 필드를 추가할 수 있습니다.

apply_shortcodes() 별칭 함수

WordPress 5.4에는 새로운 apply_shortcodes() 함수가 도입되었습니다. do_shortcode() 함수의 별칭입니다. 새 함수는 의미상 더 정확한 함수 이름을 제공합니다. 일반적으로 do_ 접두어가 있는 함수는 출력 또는 일부 유형의 작업을 기대합니다. apply_ 접두사가 있는 함수는 데이터가 반환될 것으로 예상합니다.

단축 코드 인식 영역이 있는 테마 또는 플러그인을 생성하는 경우 새 기능으로 전환하고 싶을 것입니다. do_shortcode() 함수는 현재 사용 중단으로 표시되어 있지 않지만 이것이 최종 목표여야 합니다.