일반적인 WordPress 테마 개발 실수를 피하는 방법

게시 됨: 2021-02-16

WordPress는 특히 테마 및 플러그인 개발과 관련하여 매우 유연합니다. 증거를 보고 싶다면 개발자 그룹에게 특정 기능을 구현하는 방법을 물어보세요. 동일한 결과를 달성하기 위해 여러 가지 다른 방법을 받게 될 가능성이 있습니다. 지원 포럼에는 이러한 종류의 예가 흩어져 있습니다.

그러나 이러한 유연성과 함께 "잘못된" 방식으로 일을 하기 쉽다는 현실도 있습니다. 이제, 이 경우에 "잘못된" 것은 무언가가 비효율적이거나 앞으로 유지하기에는 약간의 고통이 있음을 의미합니다. 기능적이라는 의미에서 작동할 수 있지만 일반적으로 작업을 완료하는 더 좋은 방법이 있습니다.

테마 개발에서 흔히 볼 수 있는 다섯 가지 실수와 미래의 골칫거리를 덜어줄 대안을 살펴보겠습니다.

1. 템플릿에서 절대 URL 사용

WordPress 페이지 또는 게시물이 생성하는 HTML 코드를 본 적이 있다면 이미지와 내부 링크 모두 절대(전체) URL을 사용한다는 것을 알 수 있습니다. 그러나 이것은 테마 템플릿에 코드를 추가할 때 작업을 완료하는 가장 좋은 방법은 아닙니다.

예를 들어 임시 URL을 사용하는 웹 사이트를 개발 중이라고 가정해 보겠습니다. 템플릿에 하드코딩된 절대 URL은 영구 도메인에서 사이트를 시작할 준비가 되었을 때 수동으로 코드를 변경해야 함을 의미합니다. 이 작업을 수행할 수는 있지만 이러한 유형의 코드가 숨어 있을 수 있는 모든 지점을 잊어버리기가 너무 쉽습니다.

WordPress에는 대시보드의 Settings > General 영역에서 바로 가져온 올바른 URL을 결정하는 방법이 내장되어 있습니다.

링크의 경우 esc_url( home_url() ) 을 에코하면 홈 페이지에 대한 전체 경로가 제공됩니다. 따라서 코드에 URL을 명시적으로 배치하는 대신 다음과 같이 홈 페이지에 대한 간단한 링크를 다시 추가할 수 있습니다.

 <a href="<?php echo esc_url( home_url() ); ?>" />Home</a>

또한 이를 사용하여 보조 페이지를 가리킬 수도 있습니다. 예를 들어, 사이트의 About Us 페이지로 연결하려는 경우 다음 코드를 사용할 수 있습니다.

 <a href="<?php echo esc_url( home_url() ); ?>/about-us/" />About Us</a>

유사한 스니펫이 이미지에도 적용됩니다. 이 예는 활성 테마의 /images/ 하위 폴더에서 이미지를 가져옵니다.

 <img src="<?php echo esc_url( get_stylesheet_directory_uri() ) ; ?>/images/hello.png" />

2. 템플릿에 직접 스크립트 및 스타일 추가

WordPress에서 타사 스크립트 및 스타일을 사용하는 것은 고유한 세계입니다. 테마 구축을 처음 시작할 때 단순히 <script> 또는 <style> 태그 또는 Google 글꼴 내장 코드를 테마 헤더에 직접 삽입하고 싶은 유혹을 받을 수 있습니다. 이것은 일반적으로 정적 HTML 사이트에서 수행되는 방식이므로 여기에서도 동일한 작업을 수행하는 것이 좋습니다.

그러나 WordPress의 다른 모든 것과 마찬가지로 더 나은 방법이 있습니다. 대신 wp_enqueue_script()wp_enqueue_style() 을 활용하십시오. 스크립트와 스타일시트를 올바른 위치에 추가합니다. 또한 모든 것이 테마의 functions.php 파일에서 호출되기 때문에 자산을 훨씬 쉽게 관리할 수 있습니다.

여기에서 바퀴를 재발명하는 대신 WordPress Theme Handbook에는 테마에 스크립트와 스타일을 적절하게 추가하는 방법에 대한 환상적인 가이드가 있습니다.

현명한 개발 결정 내리기

3. jQuery의 외부 인스턴스 호출

관련 메모에서 WordPress의 숨겨진 비밀 중 하나는 이미 여러 인기 있는 UI 기능과 함께 jQuery 사본이 포함되어 있다는 것입니다. 따라서 jQuery를 설치하거나 원격으로 호출할 필요가 없습니다. 이렇게 하면 인기 있는 JavaScript 라이브러리를 쉽게 활용하고 탭, 날짜 선택기, 대화 상자 등과 같은 요소를 구현할 수 있습니다.

유일한 문제는 테마의 functions.php 파일을 통해 사용하려는 항목을 구체적으로 활성화해야 한다는 것입니다. 이는 약간의 학습 곡선을 생성하는 동시에 팽창을 줄입니다.

그리고 사실 원하는 jQuery UI 요소를 구현하는 것은 그리 어렵지 않습니다. 예를 들어 jQuery UI 탭을 사용하려면 functions.php 에 다음 스니펫을 추가하기만 하면 됩니다.

 function my_jquery_elements() { wp_enqueue_script( 'jquery-ui-tabs', array('jquery')); add_action( 'template_redirect', my_jquery_elements ', 10 );

이것은 WordPress에 이미 존재하는 라이브러리에서 요소를 로드하도록 지시합니다. 거기에서 탭을 디자인하고 jQuery UI 문서에 지정된 대로 정의합니다.

4. 지나친 커스터마이징

사용자 정의 필드 및 사용자 정의 게시물 유형을 추가하는 기능은 개발자와 사이트 콘텐츠 편집자 모두의 삶을 훨씬 더 쉽게 만들 수 있습니다. 편리함, 더 나은 콘텐츠 구성, 더 직관적인 UX를 제공합니다. 그러나 때때로 우리는 그것을 너무 멀리 가져갑니다.

예를 들어, 저는 사용자 정의 필드의 열렬한 팬입니다. 하지만 저조차도 주제를 융통성이 없을 정도로 맞춤화한 적이 있다는 것을 인정합니다. 필드는 직원 프로필 필드와 같이 입력해야 하는 콘텐츠가 무엇인지 정확히 알고 있는 설정에 적합합니다.

그러나 누군가가 추가하려는 콘텐츠 유형이 일치하지 않을 때 지저분해질 수 있습니다. 클라이언트는 사용자 정의 사용을 더 어렵게 만들 수 있는 콘텐츠에 "사소한" 예외가 있는 것으로 유명합니다. 조건부 논리는 이 중 일부를 설명할 수 있지만 UI가 손에서 벗어나기 전까지만 사용할 수 있습니다.

이러한 유형의 사용자 지정에는 엄격하고 빠른 규칙이 없습니다. 우리가 실제로 할 수 있는 유일한 일은 무엇을 커스터마이징해야 하고 WordPress 콘텐츠 편집기나 틈새 플러그인에 더 잘 맡겨야 하는지에 대한 최선의 판단을 사용하는 것입니다. 필드 또는 게시물 유형을 추가할 때 상황이 변경될 수 있다는 점을 알고 이를 염두에 두고 빌드하십시오.

5. 코드 주석 처리 실패

저는 여기서 또 다른 사실을 인정할 것입니다. 코드 주석 처리는 저의 장점이 아닙니다. 댓글을 전혀 사용하지 않는다는 것이 아니라, 댓글이 너무 명확하지 않다는 점입니다. 보통, 나는 그 사이에 많은 통찰력을 가지지 않고 특정 항목의 시작과 끝을 지적할 것입니다. 더 해야 하나요? 아마 그렇게 될 것입니다.

주석은 코드 내에서 최소한 일부 참조 지점을 제공하기 때문에 중요합니다. 둘 이상의 항목이 포함된 PHP 또는 JS 파일을 탐색할 때 특정 항목을 찾을 수 있는 위치를 알고 싶을 것입니다.

해당 코드를 편집할 유일한 사람이더라도 주석은 적극 권장됩니다. 예를 들어 지금부터 6개월 후에 무언가를 변경해야 하는 경우 코드 조각을 배치한 정확한 위치를 기억하지 못할 것입니다.

따라서 나는 거대한 위선자가 되지 않을 것이며 모든 것을 깊이 있게 논평해 달라고 간청하지 않을 것입니다. 그러나 여기서 최소한의 노력만 하면 귀하 또는 귀하의 작업을 철저히 처리해야 하는 다른 개발자가 향후 유지 관리를 더 쉽게 수행할 수 있다고 말할 것입니다.

최소한의 주석 처리된 코드

시간이 지남에 따라 더 나은 기술

나만의 WordPress 테마를 구축하는 것은 멋진 경험이 될 수 있습니다. 그러나 잘 코딩된 테마를 만들고 유지 관리하기 쉬운 세부 사항을 익히려면 상당한 연습이 필요합니다. 더 많은 경험을 쌓을수록 더 많은 기술이 발전할 것입니다.

솔직히 말해서 내가 조합한 처음 몇 가지 테마는 지금만큼 효율적이지 않았습니다. 그리고 나는 또한 진정으로 전문적인 개발자가 볼 때 그것들이 여전히 최신이 아닐 수도 있다고 확신합니다. 그런 의미에서 우리의 진화는 불변의 것입니다.

마지막으로 위에서 언급한 모든 실수는 제가 개인적으로 저질렀다는 점을 말씀드리고 싶습니다. Codex를 여러 번 방문하고 시행착오를 거쳐 "WordPress Way"를 시작하는 방법을 알게 되었습니다.

교훈은 우리 모두가 실수를 할 것이라는 것입니다. 그러나 각각은 우리에게 배우고 개선할 수 있는 기회를 제공합니다.