테마 통합을 제공하는 WordPress 플러그인 개발을위한 모범 사례에 대한 의견을 갖고 싶습니다.
이 질문을 할 때 이해하기 위해 궁금한 시나리오의 가상적인 예를 시작하겠습니다. "Discography"라는 플러그인을 생성한다고 상상해보십시오. Discography는 "밴드", "앨범"및 "트랙"의 세 가지 사용자 정의 게시물 유형을 등록합니다. 플러그인은 또한 각 게시물 유형에 대한 세부 정보를 제공하는 메타 상자와 각 게시물 유형을 구성하는 사용자 정의 분류법을 제공합니다. 이 게시물 유형은 게시물 2 게시물 플러그인 과 함께 묶여 있습니다. 관리자 내에서 사용자는 앨범과 연관 될 수있는 새 밴드를 추가 할 수 있으며,이 트랙은 트랙과 연관되며 메타 밴드 및 분류법을 통해 다른 많은 데이터가 추가됩니다.
이제이 플러그인이 사용자가이 정보를 입력 할 수 있도록 관리자를 설정하는 것을 원하지 않습니다. 데이터에 대한 기본 디스플레이를 제공하고 싶습니다. 이 관리자 만 있으면 고급 사용자 / 개발자가 좋습니다. 그녀가 그 데이터를 잡고 주제에 사용하는 것은 충분히 쉬울 것이다. 그러나 기본보기가 없으면이 플러그인은 대부분의 사용자에게 쓸모가 없습니다. 이 예에서는 다음과 같은 항목을 표시 할 수 있습니다 (괄호는 템플릿 계층 순서대로 정보를 표시 할 수있는 방법을 나타냄).
- 밴드 (단일 접두사 -band.php, single.php, index.php, 단축 코드)
- 앨범 (단일 접두어 -album.php, single.php, index.php, 단축 코드)
- 트랙 (단일 접두어 -track.php, single.php, index.php, 단축 코드)
- 밴드리스트 (template-band-list.php, page-band-listing.php, page- {id} .php, page.php, index.php, shortcode)
- 앨범 목록 (template-album-list.php, page-album-listing.php, page- {id} .php, page.php, index.php, shortcode)
- 앨범 타임 라인 (template-album-timeline.php, page-album-timeline.php, page- {id} .php, page.php, index.php, shortcode)
기본 템플릿 파일에는 각 게시물 유형에 필요한 모든 정보가 표시되지 않으므로 이러한 게시물 유형에 대한 기본 프레젠테이션이 중요합니다. 예를 들어 기본적으로 Twenty Eleven 테마는 앨범의 이름, 범주, 설명 및 게시 날짜 만 표시합니다. 앨범에는 그다지 유용하지 않습니다. 밴드, 릴리스 날짜, 레코드 레이블, 앨범 버전, 트랙 등을 가져 오는 단일 게시물 템플릿을 제공하고 싶습니다. 플러그인 개발자는 이것이 제공하는 것이 중요하다고 생각합니다. 템플릿이 모든 테마에서 작동하지는 않는다는 것을 알고 있지만 사용자 테마와 더 통합 될 수있는 기본값이 있어야합니다.
이 상황을 처리하는 가장 좋은 방법이 무엇인지 궁금합니다. 나는 당신이 다음 중 하나를 할 수 있다고 생각합니다.
단축
단축 코드는 개발자가 아닌 사람이 사이트의 어느 곳에 나 밴드, 앨범, 트랙, 밴드 목록 등을 추가 할 수있는 매우 유연하고 사용자 친화적 인 방법으로 사용될 수 있습니다. 특정 페이지에 밴드를 표시하거나 각 밴드에 대해 별도의 페이지를 만드는 데 도움이됩니다 (매우 효율적이지는 않지만 일부 사용자는 이런 방식으로 접근합니다). 단축 코드는 HTML을 생성하는데, 이는 원하는 데이터의 멋진 기본보기를 제공하는 제공된 CSS 파일에 연결됩니다. 모든 것은 플러그인 파일에 포함되며 테마로 수행 할 작업은 없습니다.
템플릿 파일
플러그인은 템플릿 파일과 함께 제공 될 수도 있습니다. 멋진 기본보기를 위해 템플릿 파일을 마크 업하고 스타일을 지정할 수 있습니다. 게시물 유형을 볼 때 테마가 올바른 템플릿을 찾도록 사용자가 파일을 테마 폴더로 이동하도록 지시 할 수 있습니다. 사용자가 한 번의 클릭으로 파일을 이동할 수있는 인터페이스를 제공 할 수도 있습니다 (참고 : 파일을 시작하지 않고 테마에 파일을 추가하는 것은 악의적이므로 활성화시 사용자의 테마 폴더에 파일을 만들지 않습니다) .
또한 필터를 사용하여 플러그인 폴더 밖으로 이동하지 않고 이러한 파일을 활용하여 모든 것을 독립적으로 유지할 수 있습니다. 이 목적으로 사용되는 "template_include"및 "{$ type} _template"필터를 보았습니다. 실제로 테마 폴더의 템플릿을 사용할 수 있으며없는 경우 이러한 필터를 사용하여 기본보기를 제공 할 수 있습니다.
질문
제시된 아이디어가 어떤 식 으로든 문제가 있고 내가 포함하지 않은 대안이 있다면 이러한 상황에 대한 모범 사례가 다른 사람들이 어떻게 생각하는지 알고 싶습니다.
감사합니다!