मैंने Magento को 2.2.4 में अपग्रेड किया और अब मेरे पास उत्पाद पृष्ठों पर ब्रेडक्रंब नहीं है। वे अन्य पृष्ठों पर नहीं बल्कि उत्पादों पर दिखाई देते हैं। मैंने स्रोत की जाँच की और देखा कि 'ब्रेडक्रंब' क्लास और कुछ जसन परम्स के साथ एक div है, लेकिन यह खाली है (कंसोल पर कोई त्रुटि नहीं है)।
कोई उपाय?
अद्यतन:
मुझे पता चला कि एक कारण से मैं समझा नहीं सकता, मैगेंटो ने जेएस का उपयोग करके शीर्ष-मेनू नेविगेशन के आधार पर उत्पाद पृष्ठों के ब्रेडक्रंब का निर्माण शुरू किया और मेरे मामले में मैंने मेनू बदल दिया और विभिन्न सीएसएस चयनकर्ताओं का उपयोग किया, यह बंद हो गया काम कर रहे।
मुझे विश्वास है कि अब मैं इसे ठीक करने में सक्षम हो जाऊंगा, लेकिन मैं उन्हें ऐसा करने के लिए कोई अच्छा कारण नहीं देख सकता, यह बहुत नाजुक है ...
मेरा अस्थायी वर्कअराउंड (अगर यह किसी की मदद करता है ...):
1. मेक getCrumbs () * को जोड़ने के लिए एक मॉड्यूल जोड़ें और एक ब्लॉक जोड़ें जो \ Magento \ Theme \ Block \ Html \ Breadcrumbs को बढ़ाता है।
namespace Vendor\Module\Block\Html;
class Breadcrumbs extends \Magento\Theme\Block\Html\Breadcrumbs
{
public function getCrumbs()
{
return $this->_crumbs;
}
public function getBaseUrl()
{
return $this->_storeManager->getStore()->getBaseUrl();
}
}
2. उत्पाद पृष्ठ पर ब्रेडक्रंब टेम्पलेट को ओवरराइड करें (ऐप / डिज़ाइन / फ्रंटेंड / विक्रेता / थीम / Magento_Catalog / टेम्प्लेट / उत्पाद / ब्रेडक्रंब.phtml)
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$catalogData = $objectManager->create('Magento\Catalog\Helper\Data');
$crumbs = false;
if ($breadcrumbsBlock = $objectManager->create('Vendor\Module\Block\Html\Breadcrumbs')) {
$breadcrumbsBlock->addCrumb(
'home',
[
'label' => __('Home'),
'title' => __('Go to Home Page'),
'link' => $breadcrumbsBlock->getBaseUrl()
]
);
$path = $catalogData->getBreadcrumbPath();
foreach ((array)$path as $name => $breadcrumb) {
$breadcrumbsBlock->addCrumb($name, $breadcrumb);
}
$crumbs = $breadcrumbsBlock->getCrumbs();
}
?>
<?php if ($crumbs && is_array($crumbs)) : ?>
<div class="breadcrumbs">
<ul class="items">
<?php foreach ($crumbs as $crumbName => $crumbInfo) : ?>
<li class="item <?= /* @escapeNotVerified */ $crumbName ?>">
<?php if ($crumbInfo['link']) : ?>
<a href="<?= /* @escapeNotVerified */ $crumbInfo['link'] ?>" title="<?= $block->escapeHtml($crumbInfo['title']) ?>"><?= $block->escapeHtml($crumbInfo['label']) ?></a>
<?php elseif ($crumbInfo['last']) : ?>
<strong><?= $block->escapeHtml($crumbInfo['label']) ?></strong>
<?php else: ?>
<?= $block->escapeHtml($crumbInfo['label']) ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>