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.