Magento 2.4.3 верхнее меню не возвращает содержимое

#php #magento #magento2 #magento2.4

Вопрос:

Я унаследовал проект Magento, который необходимо было обновить с версии 2.1 до более поздней версии, поэтому я выполнил обновление до Magento 2.4.3. Большинство вещей, похоже, работают без проблем, однако основная навигация в верхнем меню не отображается.

В моем design/frontend/lt;VENDORgt;/lt;THEMEgt;/templates/html/topmenu.phtml файле у меня есть следующий код:

 lt;?php /**  * Copyright © Magento, Inc. All rights reserved.  * See COPYING.txt for license details.  */  $columnsLimit = $block-gt;getColumnsLimit() ?: 0; $_menu = $block-gt;getHtml('level-top', 'submenu', $columnsLimit); ?gt; lt;nav class="navigation" data-action="navigation"gt;  lt;ul data-mage-init='{"menu":{"responsive":true, "expanded":true, "position":{"my":"left top","at":"left bottom"}}}'gt;  lt;?= /* @noEscape */ $_menu ?gt;  lt;?= $block-gt;getChildHtml() ?gt;  lt;/ulgt; lt;/navgt;  

В свой пользовательский design/frontend/lt;VENDORgt;/lt;THEMEgt;/layout/default.xml файл я добавил следующий фрагмент кода:

 lt;referenceContainer name="store.menu"gt;  lt;block class="lt;VENDORgt;ThemeBlockHtmlTopmenu" name="catalog.topnav" template="Magento_Theme::html/topmenu.phtml" /gt; lt;/referenceContainergt;  

Блок , на который ссылается этот класс, является просто копией/вставкой исходного блока, в котором он находится app/code/Magento/Theme/Block/Html/Topmenu.php , поэтому никаких пользовательских изменений не было сделано.

Использование исходного блока вообще не отображает блок. Использование MagentoFrameworkViewElementTemplate вместо этого отображает пустой блок, как при использовании моего пользовательского блока.

Это и есть результат:

    lt;nav class="navigation" data-action="navigation"gt;  lt;ul id="ui-id-2" class="ui-menu ui-widget ui-widget-content ui-corner-all" role="menu" tabindex="0"gt;  lt;!-- Nothing in here --gt;  lt;/ulgt; lt;/navgt;  

в то время как я ожидал бы, что для каждой категории будут отображаться разные элементы списка и их дети.

Все категории включены и включены в меню, и все они являются дочерними элементами основной корневой категории, выбранной для представления магазина серверной частью.

Если я попытаюсь записать то, что возвращается, $block-gt;getHtml() я получу пустую строку.

Magento использует встроенный кэш, а не лак, и все компилируется без каких-либо ошибок.

В чем может быть проблема?