Jak uzyskać aktualną kategorię produktu Nazwa na stronie widoku produktu nad nazwą produktu. I podaj ścieżkę do pliku Lokalizacja, aby uzyskać nazwę bieżącej kategorii produktu w Magento 2.
9
Utwórz niestandardowy moduł, taki jak poniższy kod.
utwórz plik bloku modułu, aby uzyskać nazwę bieżącej kategorii.
<?php
namespace Namespace\Modulename\Block;
class Blockname extends \Magento\Framework\View\Element\Template
{
protected $_registry;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Framework\Registry $registry,
array $data = []
)
{
$this->_registry = $registry;
parent::__construct($context, $data);
}
public function getCurrentCategory()
{
return $this->_registry->registry('current_category');
}
}
?>
utwórz plik phtml z poniższym kodem
<?php if ($currentCategory = $block->getCurrentCategory()): ?>
<div class="detail-category-name">
<?php echo $currentCategory->getName(); ?>
</div>
<?php endif; ?>
wywołanie powyżej pliku phtml przez plik xml.
<referenceContainer name="product.info.main">
<block class="Namespace\Modulename\Block\Blockname" name="product.category.name" template="Magento_Catalog::product/view/yourfilename.phtml" >
</block>
</referenceContainer>
I wreszcie możesz zobaczyć nazwę kategorii tuż nad nazwą produktu na stronie szczegółów produktu.
Daj mi znać, jeśli masz jakieś zapytanie.
Powinieneś być w stanie uzyskać identyfikatory kategorii za pomocą metody getCategoryIds () na produkcie. Na przykład odwołanie:
Oznacza to, że powinieneś być w stanie zasadniczo wywoływać
$product->getCategoryIds()
i filtrować to w swoim bloku.Istnieje również metoda wywoływana
getCategoryCollection()
w tym samym modelu, która pozwala na cykliczne przechodzenie między kategoriami jako pełnymi obiektami. Powinno to odciąć środkowego człowieka od załadowania ich Id.źródło
źródło