Come ottenere il nome della categoria corrente del prodotto in Magento 2 nella pagina di visualizzazione del prodotto


9

Come ottenere il nome della categoria corrente del prodotto nella pagina di visualizzazione del prodotto sopra il nome del prodotto. E dammi la posizione del percorso del file per ottenere il nome della categoria di prodotto corrente in Magento 2.

Risposte:


10

Crea un modulo personalizzato come sotto il codice.

creare un file di blocco del modulo per ottenere il nome della categoria corrente.

<?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');
    }

}
?>

crea un file phtml con il codice seguente

<?php if ($currentCategory = $block->getCurrentCategory()): ?>
    <div class="detail-category-name">
        <?php echo $currentCategory->getName(); ?>
    </div>
<?php endif; ?>

chiama sopra il file phtml tramite il file 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>

E infine puoi vedere il nome della categoria appena sopra il nome del prodotto nella pagina dei dettagli del prodotto.

Fammi sapere se hai qualche domanda.


ho inserito il codice xml in catalog_product_view.xml in Product.info.main refrence ma non riesco a vedere alcun nome div o nome di categoria.
Nikul,

Devi inserirlo nel tema default.xml.
Suresh Chikani,

Sì, ho provato a mettere in default.xml ma non funziona ..
Nikul,

Grazie. funziona come un fascino. fai attenzione al percorso che stai chiamando (il mio era "Vendor_Categoryonproduct :: category.phtml) e non dimenticare la registrazione e il file del modulo.
Claudiu Creanga,

non sto ottenendo alcun risultato
vijay b

1

Dovresti essere in grado di ottenere gli ID categoria utilizzando il metodo getCategoryIds () su un prodotto. Ad esempio, riferimento:

\Magento\Catalog\Model\Product::getCategoryIds();

Ciò significa che dovresti essere in grado di chiamare $product->getCategoryIds()e filtrare essenzialmente quello nel tuo blocco.

Esiste anche un metodo chiamato getCategoryCollection()nello stesso modello che ti consente di scorrere le categorie come oggetti completi. Dovrebbe eliminare l'uomo intermedio di caricarli con l'ID.


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

        ?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.