플러그인(Plugin)에서 페이지 템플릿(Template) 만들기

qpress 2020년 2월 1일 61

플러그인 개발 시 Font-end 화면을 다루어야 할 경우가 있는데, 이 경우 테마의 템플릿을 사용하기 어렵다. 어렵게 사용한다고 하더라도 이용자가 테마를 변경하게 되면 무용지물이 된다.

나의 플러그인에서 필요한 템플릿을 만들고 특정 페이지 또는 포스트 호출 시 사용할 수 있는 방법이 필요한데, 이에 대해 간단히 노트한다.

add_filter( 'single_template', 'my_template' );
function my_template( $single )
{
    global $post;
    /* Checks for single template by post type */
    if ( $post->post_type == 'my_post_type' ) {
        if ( file_exists( dirname( __FILE__ ) . '/my-template.php' ) ) {
            $single = dirname( __FILE__ ) . '/my-template.php';
        }
    }
    return $single;
}

포스트 글보기 페이지인 single.php가 호출 되는 프로세스(single_template)에 add filter 하여, 내가 설정한 포스트타입일 경우, 내 플러그인 폴더에 있는 my-template.php 파일이 호출 된다.