템플릿 계층 : index.php, front-page.php, home.php와 혼동


36

정말 혼동하고있어 index.php, home.php하고 front-page.php. 많은 경우에을 가지고 있지만으로 index.php덮어 씁니다 front-page.php. 하지만 최근에에 대해 알게되었습니다 home.php.

  • 사이의 차이는 무엇 home.phpindex.php?
  • 를 사용할 수있는 이상적인 조건이 무엇 home.php이상은 index.php?
  • 사용하기에 이상적인 조건은 무엇입니까 front-page.php?
  • 내가 front-page.php그때 사용하고 있는 특정 작업은 무엇 index.php입니까?

Codex 에서 템플릿 계층 구조 를 읽었습니다 . 내 질문을 페이지 템플릿과 섞지 마십시오. 이해합니다. alHamduLILLAH.


1
당함이 함께 @rarst : rarst.net/wordpress/front-page-logic . 당신을 도울 수 있습니다.
Mayeenul Islam

답변:


34

프론트 페이지 로직은 WordPress에서 가장 혼란스러운 기능 중 하나이며 설명 및 요약하기가 매우 어렵습니다. 다시 언급하는 동안 의견에서 언급했듯이 나는 첫 페이지 논리 치트 시트 를 구성하는 데 시간이 오래 걸리지 않았습니다 .

그러나 이것은 인기있는 스레드이기 때문에 당신이 가진 매우 구체적인 질문에 대답하려고 노력할 것입니다.

사이의 차이는 무엇 home.phpindex.php?

home.php게시물 색인 용 템플릿입니다 (WP의 특수한 경우 인 기본 게시물 게시 유형의 아카이브). WP는 사이트의 루트 또는 전용 게시물 페이지에 표시되는지에 상관없이 게시물 색인을 찾으려고 시도합니다.

index.phpcatch-all 템플릿입니다. 템플릿 계층 구조의 모든 브랜치에서 최종 선택이며 아카이브 및 단일 뷰 모두에 적합하지 않은 경우 선택됩니다.

게시물 색인 만 사용할 수 home.php있지만 다른 모든 컨텍스트는 사용할 수 있습니다 index.php.

를 사용할 수있는 이상적인 조건이 무엇 home.php이상이index.php

home.php게시물 색인을 사용자 정의 하는 데 사용 합니다.

당신이 사용하는 index.php어떤 표시에 적합한 테마에서 가장 일반적인 템플릿을 제공합니다.

일부 테마는 비워두기를 선택하고 index.php가능한 모든 경우에 대해보다 구체적인 템플릿을 갖도록하므로 사용할 필요가 없습니다.

사용하기에 이상적인 조건은 무엇입니까 front-page.php?

front-page.php 사용 가능한 경우 루트 또는 정적 프론트 페이지의 게시물 색인에 사용됩니다.

우선 순위가 높은 템플리트이므로 테마에있는 경우 정적 프론트 페이지에 대한 임의의 템플리트를 선택할 수 없습니다. 이러한 이유로 공개 된 테마에는 거의 포함되지 않습니다 (정확한).

페이지 템플릿보다 구성하기가 쉽기 때문에 개인 프로젝트에서 가장 잘 사용됩니다.

내가 front-page.php그때 사용하고 있는 특정 작업은 무엇 index.php입니까?

index.php입니다 여전히 캐치는 다른 모든 경우에 대한 모든 템플릿입니다.

당신이 (이 정적 앞 페이지를 사용하는 경우 front-page.php적용됩니다) 다음 게시물 페이지를 사용하려고합니다 home.php다음과 index.php.


28

front-page.php파일입니다 사이트 프론트 페이지 템플릿입니다. 또는 get_option( 'show_on_front' )로 설정되어 있는지 여부에 관계없이 항상 사이트 첫 페이지에서 사용됩니다 .pageposts

home.php템플릿 파일입니다 블로그 포스트 인덱스 템플릿입니다. 블로그 게시물 색인이 사이트 첫 페이지에 표시되는지 또는 다른 페이지에 표시되는지에 관계없이 항상 블로그 게시물 색인을 표시하는 데 사용됩니다.

모두있는 경우 front-page.php및이 home.hpp존재하고이 get_option( 'show_on_front' )설정되어 posts(즉, 사이트 전면 페이지가 표시 블로그 게시물 지수)는 front-page.php파일보다 우선합니다 home.php파일.

index.php파일입니다 기본 대체 템플릿 의 모든 상황에 대한 템플릿 계층 . 현재 컨텍스트에 대해보다 구체적인 템플릿 파일이없는 경우에만 사용됩니다.

사이트 프론트 페이지 의 템플리트 계층 구조 는 다음과 같습니다.

  • front-page.php
  • If 'page' == get_option( 'show_on_front' ): 페이지 계층
  • If 'posts' == get_option( 'show_on_front' ): 블로그 게시물 색인 계층

블로그 게시물 색인 의 템플리트 계층 구조 는 다음과 같습니다.

  • home.php
  • index.php

페이지 의 템플릿 계층 구조 는 다음과 같습니다.

  • 맞춤 페이지 템플릿
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php

따라서이 권리를 얻는다면 my-template-1프론트 페이지가 최신 게시물로 설정되어있을 때 템플릿 을 사용할 수 없으며 my-template-2프론트가 정적 페이지 (코딩없이)로 설정되어 있으면 사용할 수 없습니까?
Jack Johansson

18

이 모든 것은 템플릿 계층을 철저히 읽은 것에서 비롯됩니다 .

home.php 다음과 같은 경우에 사용됩니다.

  • 사이트의 첫 페이지가 게시물 목록을 표시하도록 설정되어 있거나
  • 그리고 테마에는 home.php파일이 있습니다

마지막 조건이 충족되지 않으면 (즉, home.php테마에 파일 이없는 index.php경우)로드됩니다.

front-page.php 다음과 같은 경우에 사용됩니다 :

  • 정적 프론트 페이지가 설정 되고
  • 방문자는 당신이 당신의 "정적 홈 페이지"로 정의했다고 페이지로 이동 (즉, http://example.com/), 그리고
  • 테마에 front-page.php파일이 있습니다

마지막 조건이 충족되지 않으면 (즉, front-page.php테마에 파일 이없는 index.php경우)로드됩니다.

요약해서 말하자면

게시물 목록을 사용자 정의하려면을 사용하십시오 home.php.
정적 홈 페이지를 사용자 정의하려면을 사용하십시오 front-page.php.


2
home.php위치에 관계없이 블로그 게시물 색인에 사용됩니다. 프론트 페이지가 블로그 게시물 색인을 표시하도록 설정되어 home.php있으면 사용됩니다 (없는 경우 front-page.php).
Chip Bennett

10

한마디로 :

  • index.php 적절한 템플릿을 찾지 못한 경우 대체 템플릿입니다.
  • home.php 블로그에 사용됩니다 (최근 게시물 목록).
  • front-page.php 방문 페이지에 사용됩니다

범용 index.php템플릿

index.php템플릿 파일은 대체 템플릿입니다. 다른 적절한 템플릿을 사용할 수없는 경우 최후의 수단으로 사용됩니다. 예를 들어, front-page.phpnor 가 없으면 home.php다음 index.php이 사용됩니다. 이것은 또한 누락 된 사실 archive.php또는 single.php등등.

front-page.phpVS에 대하여home.php

이제 템플릿 front-page.phphome.php템플릿 의 차이점은 front-page.php이름에서 알 수 있듯이 사이트의 기본 첫 페이지로 사용되지만 블로그 섹션 home.php의 홈으로 사용된다는 것 입니다.

내 사이트의 방문 페이지에 어떤 템플릿이 사용됩니까?

front-page.php템플릿이 존재하는 경우, 사이트의 메인 첫 페이지 (예를 들어, 사용됩니다 http://www.example.com/). 존재하지 않으면 home.php대신 사용됩니다. 두 경우 front-page.phphome.php템플릿 파일이 다음 누락 된 index.php대체 템플릿이 사용됩니다.

내 블로그 페이지에 어떤 템플릿이 사용됩니까?

WordPress를 사용하면 방문 페이지다른 페이지 (예 :)와 같은 "블로그"페이지 (최근 게시물을 표시 함)를 가질 수 있습니다 http://www.example.com/blog/. 따라서 귀하의 사이트에 해당되는 경우 블로그 페이지는 항상 home.php템플릿을 사용합니다 . 경우 home.php다음 존재하지 않는 index.php대체 템플릿이 사용됩니다.

방문 페이지와 블로그 페이지를 구성하는 방법은 무엇입니까?

로 이동 첫 페이지에 표시하는 것을 내용 구성하려면 워드 프레스 관리자 에서, 도구> 읽기는 , 당신은 "이 구성 할 수 있습니다 프런트 페이지가 표시 정적 페이지 또는 최신 게시물을 표시합니다."

프론트 페이지에 정적 페이지를 표시하도록 선택한 경우, 블로그 페이지의 자리 표시 자로 사용할 페이지를 설정할 수도 있습니다 ( home.php템플릿 사용 ).

여기에 이미지 설명을 입력하십시오


3

워드 프레스 템플릿 계층 에서 가져온

홈페이지 표시

기본적으로 WordPress는 사이트의 홈페이지를 설정하여 최신 블로그 게시물을 표시합니다. 이 페이지를 블로그 게시물 색인이라고합니다. 블로그 게시물이 별도의 정적 페이지에 표시되도록 설정할 수도 있습니다. 템플릿 파일 home.php는 첫 페이지 또는 별도의 정적 페이지에서 블로그 게시물 색인을 렌더링하는 데 사용됩니다. home.php가 존재하지 않으면 WordPress는 index.php를 사용합니다.

  1. home.php
  2. index.php

참고 : front-page.php가 있으면 home.php 템플릿을 덮어 씁니다.

프론트 페이지 표시

front-page.php 템플릿 파일은 프론트 페이지가 블로그 게시물 색인 (위에 언급)을 표시하든 정적 페이지를 표시하든 사이트의 첫 페이지를 렌더링하는 데 사용됩니다. 프론트 페이지 템플리트는 블로그 게시물 색인 (home.php) 템플리트보다 우선합니다. front-page.php 파일이 존재하지 않으면 WordPress는 설정 → 읽기의 설정에 따라 home.php 또는 page.php 파일을 사용합니다. 해당 파일이 없으면 index.php 파일을 사용합니다.

1. front-page.php – 설정 → 읽기의 첫 페이지 표시 섹션에 설정된“최신 게시물”또는“정적 페이지”모두에 사용됩니다.

2. home.php – WordPress에서 front-page.php를 찾을 수없고 첫 페이지 표시 섹션에“최신 게시물”이 설정되어 있으면 home.php를 찾습니다. 또한 프론트 페이지 표시 섹션에 게시물 페이지가 설정되어 있으면 WordPress에서이 파일을 찾습니다.

3. page.php – 프론트 페이지 표시 섹션에 "프론트 페이지"가 ​​설정된 경우.

4. index.php – 첫 페이지 표시 섹션에 "최신 게시물"이 설정되어 있지만 home.php가 없거나 첫 페이지가 설정되었지만 page.php가없는 경우.

보다시피, 워드 프레스의 경로에는 많은 규칙이 있습니다. 위의 차트를 사용하는 것이 WordPress에 표시 될 내용을 결정하는 가장 좋은 방법입니다.

템플릿 계층 구조 차트 : 워드 프레스 템플릿 계층


2

다양한 프론트 페이지 표시 옵션이 설정 될 때 다음 페이지 각각에 어떤 템플리트가 사용되는지 테스트하기로 결정했습니다.

  • example.net
  • example.net/home/
  • example.net/blog/

결과는 상당히 길지만 참조 또는 치트 시트로 사용할 수 있습니다.

첫 페이지 표시

출처 : front-page.php와 home.php 템플릿은 WordPress와 어떻게 다릅니 까?

편집자 주 : 여기에 표를 복사하여 붙여 넣으려고했지만 HTML 대신 마크 다운 형식이 필요합니다. 가능하면 마크 다운으로 변환하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.