So erhalten Sie den aktuellen Kategorienamen des Produkts in Magento 2 auf der Seite "Produktansicht"


9

So erhalten Sie den Namen der aktuellen Produktkategorie in der Produktansicht über dem Produktnamen. Geben Sie mir den Dateipfad Speicherort, um den aktuellen Produktkategorienamen in Magento 2 abzurufen.

Antworten:


10

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.


Ich habe XML-Code in catalog_product_view.xml in Product.info.main-Aktualisierung eingefügt, aber ich kann keinen Div- oder Kategorienamen sehen.
Nikul

Sie müssen es in Ihre Theme default.xml einfügen.
Suresh Chikani

Ja, ich habe versucht, in default.xml zu setzen, aber es funktioniert nicht ..
Nikul

Vielen Dank. klappt wunderbar. Seien Sie vorsichtig bei dem Pfad, den Sie anrufen (meiner war "Vendor_Categoryonproduct :: category.phtml") und vergessen Sie nicht die Registrierungs- und Moduldatei.
Claudiu Creanga

Ich
bekomme

1

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.


0
**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();
            }

        ?>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.