Як отримати назву поточної категорії продукту в Magento 2 на сторінці перегляду продукту


9

Як отримати назву поточної категорії продукту на сторінці перегляду продукту над назвою продукту. І дайте мені шлях до файлу Місцезнаходження, щоб отримати поточну назву категорії продукту в Magento 2.

Відповіді:


10

Створіть спеціальний модуль, як нижче код.

створити файл модульного блоку для отримання поточної назви категорії.

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

}
?>

створити файл phtml з кодом нижче

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

зателефонуйте над файлом phtml через файл 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>

І нарешті ви можете побачити назву категорії трохи вище назви продукту на сторінці деталей продукту.

Повідомте мене, якщо у вас є запити.


Я маю ввести xml-код у каталог_продукту_погляду.xml у Product.info.main refrence, але я не можу побачити будь-який div або будь-яку категорію.
Нікул

Ви повинні помістити його в свою тему default.xml.
Суреш Чікані

Так, я спробував поставити в default.xml, але його не працює ..
Nikul

Дякую. працює як шарм. будьте обережні в дорозі, яку ви дзвоните (моя була "Vendor_Categoryonproduct :: category.phtml) і не забудьте файл реєстрації та модуля.
Claudiu Creanga

я не отримую жодного результату
vijay b

1

Ви повинні мати можливість отримати Id категорії за допомогою методу getCategoryIds () на продукт. Наприклад, посилання:

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

Це означає, що ви повинні мати можливість подзвонити $product->getCategoryIds()та фільтрувати через це у своєму блоці.

Існує також метод, названий getCategoryCollection()в тій же моделі, який дозволив би вам переходити по категоріям як повноцінні об'єкти. Це повинно вирізати середнього чоловіка, що завантажує їх ІД.


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

        ?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.