ฉันอัพเกรด Magento เป็น 2.2.4 และตอนนี้ฉันไม่มี breadcrumbs ในหน้าผลิตภัณฑ์ พวกเขาปรากฏในหน้าอื่น ๆ แต่ไม่ได้อยู่ในผลิตภัณฑ์ ฉันตรวจสอบแหล่งที่มา & สังเกตว่ามี div ด้วยคลาส 'breadcrumbs' & parson json บางส่วน แต่ว่างเปล่า (ไม่มีข้อผิดพลาดบนคอนโซล)
ความคิดใด ๆ
UPDATE:
ฉันพบว่าด้วยเหตุผลที่ฉันไม่สามารถอธิบายได้วีโอไอพีเริ่มสร้างส่วนย่อยของหน้าผลิตภัณฑ์ตามการนำทางเมนูด้านบนโดยใช้ JS และเนื่องจากในกรณีของฉันฉันเปลี่ยนเมนูและใช้ตัวเลือก CSS ที่แตกต่างกันมันหยุด การทำงาน
ฉันเชื่อว่าตอนนี้ฉันจะสามารถแก้ไขได้ แต่ฉันไม่เห็นเหตุผลที่ดีที่พวกเขาจะทำเช่นนั้นมันช่างเปราะบางเกินไป ...
วิธีแก้ปัญหาชั่วคราวของฉัน (ถ้าช่วยคน ... ):
1. สร้างโมดูล & เพิ่มบล็อกที่ขยาย \ Magento \ Theme \ Block \ Html \ Breadcrumbs เพื่อเพิ่มเมธอด getCrumbs () * ไม่จำเป็นต้องใช้ di.xml
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. แทนที่เทมเพลต breadcrumbs ในหน้าผลิตภัณฑ์ (แอพ / ออกแบบ / ส่วนหน้า / ผู้ขาย / ธีม / Magento_Catalog / เทมเพลต / ผลิตภัณฑ์ / breadcrumbs.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; ?>