Antworten:
Erstellen Sie ein benutzerdefiniertes Modul wie im folgenden Code.
Erstellen Sie eine Modulblockdatei, um den aktuellen Kategorienamen abzurufen.
<?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');
}
}
?>
Erstellen Sie eine HTML-Datei mit dem folgenden Code
<?php if ($currentCategory = $block->getCurrentCategory()): ?>
<div class="detail-category-name">
<?php echo $currentCategory->getName(); ?>
</div>
<?php endif; ?>
Rufen Sie die obige HTML-Datei über die XML-Datei auf.
<referenceContainer name="product.info.main">
<block class="Namespace\Modulename\Block\Blockname" name="product.category.name" template="Magento_Catalog::product/view/yourfilename.phtml" >
</block>
</referenceContainer>
Und schließlich können Sie den Kategorienamen direkt über dem Produktnamen auf der Produktdetailseite sehen.
Lassen Sie mich wissen, wenn Sie Fragen haben.
Sie sollten in der Lage sein, die Kategorie-IDs mithilfe der Methode getCategoryIds () für ein Produkt abzurufen. Zum Beispiel Referenz:
\Magento\Catalog\Model\Product::getCategoryIds();
Dies bedeutet, dass Sie in der Lage sein sollten $product->getCategoryIds()
, dies in Ihrem Block im Wesentlichen aufzurufen und zu filtern.
Es gibt auch eine Methode, die getCategoryCollection()
im selben Modell aufgerufen wird und mit der Sie die Kategorien als vollständige Objekte durchlaufen können. Es sollte den mittleren Mann davon abhalten, sie mit den Ausweisen zu beladen.
**Add XML Code Theme/namespace/Magento_Catalog/templates/product/view**
<block class="Magento\Catalog\Block\Product\View" name="product.info.category" after="product.price.final" template="product/view/current_category.phtml" />
**Create New File Theme/namespace/Magento_Catalog/templates/product/view**
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');
$categories = $product->getCategoryIds(); /*will return category ids array*/
foreach($categories as $category){
$cat = $objectManager->create('Magento\Catalog\Model\Category')->load($category);
echo $cat->getName();
}
?>