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.

Nikul
quelle

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.

Suresh Chikani
quelle
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.

Richard Cripps
quelle
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();
            }

        ?>
Baharuni Asif
quelle