Cree un módulo personalizado como el siguiente código.
cree un archivo de bloque de módulo para obtener el nombre de categoría actual.
<?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');
}
}
?>
crear un archivo phtml con el siguiente código
<?php if ($currentCategory = $block->getCurrentCategory()): ?>
<div class="detail-category-name">
<?php echo $currentCategory->getName(); ?>
</div>
<?php endif; ?>
llame al archivo phtml anterior a través del archivo 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>
Y finalmente puede ver el nombre de la categoría justo encima del nombre del producto en la página de detalles del producto.
Avísame si tienes alguna consulta.
Debería poder obtener los Id. De categoría utilizando el método getCategoryIds () en un producto. Por ejemplo, referencia:
Esto significa que deberías poder llamar
$product->getCategoryIds()
y filtrar esencialmente eso en tu bloque.También hay un método llamado
getCategoryCollection()
en el mismo modelo que le permitiría recorrer las categorías como objetos completos. Debería cortar al intermediario de cargarlos con los Id.fuente
fuente