ブロックを書き換えるときにMagento2でテンプレートを書き換える必要がありますか?
この質問は、Magento2のベストプラクティスに従うことです。 要素の周りにラッパーを追加するために、\ Magento \ Theme \ Block \ Html \ Topmenu :: _ addSubMenu()メソッドを書き換える必要がありました。今、それは保護された方法なので、私の理解は設定機能を使わなければならないということです: <preference for="Magento\Theme\Block\Html\Topmenu" type="MyCompany\Theme\Block\Html\Topmenu" /> そして私の書き換えでクラスを追加します: <?php namespace MyCompany\Theme\Block\Html; class Topmenu extends \Magento\Theme\Block\Html\Topmenu { protected function _addSubMenu($child, $childLevel, $childrenWrapClass, $limit) { // my stuff } } デフォルトのクラスは書き直されましたが、次のページのリロードで次のエラーが発生しました: main.CRITICAL:無効なテンプレートファイル:モジュールの 'html / topmenu.phtml': 'MyCompany_Theme'ブロックの名前: 'catalog.topnav' [] [] MagentoはMagento_Themeではなく、私の拡張機能の下でhtml / …