Risposte:
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.
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.
**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();
}
?>