inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

워드프레스 제대로 개발하기 - 클라이언트 편

상세화면용 표지 불러 오기 1

single-book.php 파일은 워드프레스 기본 제공 파일인가요?

해결된 질문

300

hweejin_cha

작성한 질문수 5

1

3분 20초에 singular.php 파일은 포스트, 북 등 모든 파일을 보여주는 페이지라서 북 상세용 파일인 single-book.php 파일을 만드시고 바로 북 상세 파일로 적용됐습니다.

여기서 궁금한점이 어떻게 어떤 설정 없이 single-book.php 파일이 자동적으로 북 상세페이지 전용 파일로 지정될 수 있나요?

single-{key].php 로 하면 key의 전용페이지가 되는 규칙이 있는 건지 궁금합니다.

 

wordpress php

답변 2

0

워드프레스 개발

안녕하세요. 질문 감사합니다.

그런데 제가 답변이 너무 늦었네요. 죄송합니다 🙏

답을 드리지 않은 사이에 이미 수업에서 관련 내용을 들으셨을 것 같습니다. "61강 템플릿 우선순위"가 정확히 질문하신 내용을 자세히 다루고 있으니까요.

아니면 아래 "인프런 AI 인턴"의 답변도 잘 돼 있어서, 그것만으로 금세 이해를 하셨을 수도 있을 것 같고요.

이미 질문이 해결되신 듯해 제가 답을 반복할 필요는 없을 것 같습니다.

그러나 죄송한 마음을 담아 조금 다른 설명을 드리겠습니다.

 

URL에 따라 single.phpsingle-book.php와 같은 템플릿을 불러오는 코드는 wp-includes/template-loader.php에 있습니다. 이 파일의 69번째 줄을 보면 이게 싱글이라면(`is_single()`이 참이면) get_singular_template() 함수를 써서 템플릿이 뭔지 알아내라 하고 정의가 돼 있습니다.

'is_single'            => 'get_single_template',

사실 위와 같이 배열로 돼 있는데, 배열 아래쪽의 79~91라인을 보면 결국 call_user_function()으로 is_singleget_single_template을 호출하고 있는 것을 볼 수 있습니다.

 

get_single_template() 함수는 wp-includes/template.php 파일의 549번째 줄에 정의돼 있는데요. $templates라는 배열에 single용 템플릿이 될 수 있는 파일명을 우선순위별로 쭉 담습니다.

single-book.php의 경우 get_single_template() 함수 안에서 그 모습을 찾아 볼 수 있습니다. 함수가 있는 파일에서 566번째 줄을 보면 템플릿 우선순위를 담는 $templates 배열에 single-{$object->post_type}.php를 담고 있거든요.

 

이후 $templates의 내용을 참고해서 최종 템플릿 파일을 고르는데요.

get_single_template()get_query_template()locate_template() 순서로 들어가면서 실행이 됩니다.

이중 실제로 템플릿 후보가 될 파일이 있는지 검사하고 있으면 해당 경로를 리턴해 주는 역할을 하는 게 locate_template() 함수입니다.

locate_template() 함수는 wp-includes/template.php 파일의 718라인에 정의돼 있는데요. 732라인을 보면 아래처럼 파일이 있는지 검사하는 코드를 볼 수 있습니다.

if ( file_exists( $wp_stylesheet_path . '/' . $template_name ) ) {

 

제 답변이 조금이나마 도움이 되셨으면 좋겠습니다.

감사합니다.

0

hweejin_cha

AI답변으로 대략 이해했는데 상세한 답변 감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

제공해주신 정보 중에 워드프레스나 single-book.php 파일에 대한 직접적인 언급이 없어, 구체적인 답변을 드리기 어렵습니다. 하지만 일반적인 워드프레스 지식에 기반해 설명드리겠습니다.

워드프레스에서는 single-{post_type}.php 템플릿명 규칙을 통해 특정 포스트 타입의 상세 페이지를 위한 템플릿을 지정할 수 있습니다. 여기서 {post_type}은 포스트 타입의 이름을 나타냅니다. 만약 book이라는 포스트 타입을 생성했다면, single-book.php 파일을 만들어 해당 포스트 타입의 상세 페이지로 사용할 수 있습니다. 이는 워드프레스 템플릿 계층 구조의 일부로, 특정 포스트 타입에 맞는 상세 페이지를 디자인할 수 있는 유연성을 제공합니다.

따라서, single-book.php 파일은 워드프레스가 기본 제공하는 파일은 아니며, 사용자가 생성한 특정 포스트 타입(book)에 대한 상세 페이지를 위해 직접 추가한 파일입니다. 이처럼 워드프레스는 다양한 템플릿 파일 명명 규칙을 통해 유연한 커스터마이징을 지원합니다.

뉴스페이퍼 싱글템플릿 디자인 관련 상담 요청

0

25

2

53강 레이아웃에서 css git 링크 관련 질문입니다.

0

33

2

폰트 업로드 단계에 설치해야할 플러그인이 현재 없습니다

0

46

2

FASTCOMET SSL 설정 방법 문의

0

51

2

banbu.kr 사이트 접속이 안됩니다.

0

56

2

엘리멘터

0

48

2

선생님 총체적 난국입니다..

0

71

2

wsl에서 폴더 열기 리눅스 드라이브가 보이지 않습니다.

0

65

1

도메인연결문의

0

53

2

도쿄서버 선택불가의 경우 대체 안을 알려주세요

0

53

2

강의가 오래됐는데 현시점에 원활한 진행이 가능할까요?

0

41

2

XML 불러오기 불가 (이미지만)

0

158

1

플러그인 개발에 대해서 궁금합니다

0

315

2

워드프레스 댓글 수정 삭제

0

375

2

wp_enqueue_style 이동

0

292

2

강의변경

0

391

1

WP 전반적인 질문입니다.

0

447

1

xml 가져오기 불가

0

422

1

xdebug 3.2와 PHPStorm debug 연동

0

773

1

phpStorm에서 Cmd B 정의로 바로 점프하는게 안되요

0

241

1

wp_reset_postdata();

0

344

1

어드민 강의 관련

0

384

1

query loop 관련 커스터마이징 질문

0

262

1

안녕하세요 첫 질문입니다

0

277

4