Magento 2에서 .phtml 파일을 재정의하는 방법


15

제품 세부 정보 페이지를 사용자 지정하려고하므로 다음 위치의 일부 .phtml 파일을 재정의해야했습니다.

내가 알고 싶은 그래서, 방법 로 .phtml 오버라이드 (override) 파일을 vendor\magento\module-catalog\view\frontend\templates\product또는vendor\magento\module-theme\view

답변:


23

때로는 기존 템플릿을 수정해야 할 수도 있습니다. 기존 템플릿 파일을 직접 변경하는 대신 자체 테마에서이를 덮어 써야합니다. 카테고리 목록 페이지 ( list.phtml) 를 업데이트한다고 가정합니다 . 그렇게하려면 다음 디렉토리 구조를 작성하십시오.

app/design/frontend/Mycompany/Basic/Magento_Catalog/templates/product

여기서 나는 우리의 현재 주제가 기본이라고 가정합니다. 이제 list.phtml 파일을 다음 위치에서 제품 디렉토리로 복사하십시오.

app/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

이제 재정의 된 파일을 원하는대로 수정할 수 있습니다.

자세한 내용은이 자습서를 읽어보십시오. 많은 도움이됩니다.


2
안녕하세요, \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ templates \ product \ list.phtml 경로에서 list.phtml 파일을 무시합니다. 그러나 효과가 없었습니다. 내가 어디에서 잘못했는지 알 수 있습니까?
Vigna S

같은 문제, 몇 번이나 새로 고침을 치더라도 기본 항목이 사용자 정의 항목 위에로드됩니다. 그리고 그렇습니다. 누군가가 묻기 전에 올바른 경로가 있지만, magento를 설치하기 위해 composer를 사용하고 있습니다. 그래서 기본값은 다른 위치에 있습니다.
Dustin Poissant

html 블록 캐시를 지우고 나면 완벽하게 작동했습니다! (이 blog.gardenhouse.io/2018/05/29/… 와 같은 캐시를 지우 십시오 )
paul

그래도 모듈에서 템플릿을 재정의하는 방법은 무엇입니까?
Black

8

나는 내 자신의 질문에 대답하고 있습니다.

내 질문에서 언급 한 위치에서 .phtml 파일을 무시하는 방법을 찾았습니다.

원본 파일을 무시하려면 다음 위치에 배치해야합니다

app\design\frontend\<VENDOR_NAME>\<THEME_NAME>\Magento_Catalog\templates\product\view

그리고 나는 이론이 Magento 2의 다른 .phtml 파일을 재정의하는 것과 동일하다고 생각합니다.


좀 더 자세히 설명해 주시겠습니까? 내 사용자 정의 phtml 파일을 테마 폴더 isit에 복사 해야하는 것처럼? app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \와 같이 공급 업체 폴더를 생성하고 핵심 phtml 파일을 복사해야합니까? 그렇게하면보기 폴더에 템플릿이 필요하지 않습니까?
Sushivam

안녕하세요, 위젯에 대한 phtml 파일을 재정의하려고하는데 사용한 경로가 올바른지 확실하지 않습니다. 경로의 Magento_Catalog 부분이 재정의하려는 모듈 폴더와 관련이 있습니까? 따라서 vendor \ magento \ module-catalog-widget \ view \ frontend \ templates \ product \ widget \ content를 재정의하는 경우 인스턴스의 Magento_Catalog를 인스턴스의 Magento_Catalog_Widget으로 바꾸겠습니까? 아직 명확하지 않아 약간 혼동됩니다.
robgt

6

phtml, 레이아웃 및 웹 파일을 사용자 정의 테마로 재정의하려면

1) 템플릿 파일을 재정의하려면

vendor / magento / module-catalog / view / frontend / templates / product / list.phtml

이 길을 따라

app / design / frontend / Vendor / theme / Magento_Catalog / templates / product / list.phtml

2) 레이아웃 파일을 재정의하려면

vendor / magento / module-catalog / view / frontend / layout / catalog_product_view.xml

이 길을 따라

app / design / frontend / Vendor / theme / Magento_Catalog / layout / catalog_product_view.xml


관찰자, 컨트롤러 등과 같은 다른 모듈 파일을 재정의 / 사용자 정의하는 방법은 무엇입니까?
Tahir Yasin

6

에서 pthml 및 레이아웃 파일을 재정의하려면

vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

으로

app/Mycompany/OverideCatalog/view/frontend/templates/product/list.phtml

나열한 것:

vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

으로

app/Mycompany/OverideCatalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Mycompnay_OverideCatalog::product/list.phtml">

3

맞춤 테마로 템플릿 (phtml) 재정의

우선 재정의 vendor\magento\module-catalog\view\frontend\templates\product\some.phtml하려면 사용자 정의 테마를 작성해야합니다. 사용자 정의 테마 를 작성하는 방법 은 링크 를 참조하십시오 .

그런 다음 사용자 정의 테마에서 phtml 파일을 작성하여 기본 테마를 재정의하십시오.

 app/design/frontend/vendor-name/theme-name/Magento_Catalog/templates/product/some.phtml

그것이 마지막으로 브라우저뿐만 아니라 magento의 캐시를 지우고 페이지를 확인하면 새 phtml 파일 만 반영됩니다.

모든 템플릿 재정의에 대해 동일한 방식으로 수행 할 수 있습니다.

행운을 빕니다


고마워, 나는 방금 그것을 알아 내고 내 자신의 질문에 결과에 답했다. 당신의 대답은 내 결과와 매우 유사하다.
nuwaus

2

폴더 열기 : /vendor/magento/theme-frontend-luma/보기 폴더에서 모듈 템플릿 및 레이아웃 파일을 복사합니다.

그런 다음 폴더를 만듭니다. /app/design/frontend/spacename/Theme/

그런 다음 모듈 폴더를 만든 다음 템플릿과 레이아웃 폴더를 만듭니다.

모듈보기 폴더에서 템플릿 및 레이아웃 파일을 삽입하십시오.


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