如何显示产品SKU而不是它';在Magento的面包屑小道上有谁的名字?

如何显示产品SKU而不是它';在Magento的面包屑小道上有谁的名字?,magento,product,breadcrumbs,skus,Magento,Product,Breadcrumbs,Skus,我试图在面包屑路径中显示产品SKU,而不是产品名称。有人对如何做有什么想法吗?谢谢 您可以使用插件来更改此设置 Magento在此处设置面包屑的产品名称 Magento\Catalog\ViewModel\Product\Breadcrumbs public function getJsonConfigurationHtmlEscaped() : string { return json_encode( [ 'bre

我试图在面包屑路径中显示产品SKU,而不是产品名称。有人对如何做有什么想法吗?谢谢

您可以使用插件来更改此设置

Magento在此处设置面包屑的产品名称 Magento\Catalog\ViewModel\Product\Breadcrumbs

public function getJsonConfigurationHtmlEscaped() : string
    {
        return json_encode(
            [
                'breadcrumbs' => [
                    'categoryUrlSuffix' => $this->escaper->escapeHtml($this->getCategoryUrlSuffix()),
                    'useCategoryPathInUrl' => (int)$this->isCategoryUsedInProductUrl(),
                    'product' => $this->escaper->escapeHtml($this->getProductName())
                ]
            ],
            JSON_HEX_TAG
        );
    }
您可以向自定义模块添加插件。 在插件中添加一个函数以获取产品sku 然后在GetJSONConfiguration HtmleCaped之后添加函数,以更新GetJSONConfiguration HtmleCaped以使用sku而不是名称

AfterGetJSONConfiguration HTMLescaped($subject)


将名称变量getName()替换为getSku()?谢谢您的回复!刚刚在app\code\core\Mage\Catalog\Helper\Data.php中尝试过(在getBreadcrumbPath函数中。它可以工作,但也会更改页面标题。有什么办法吗?在模板中而不是在Helper中更改它。你能详细说明我应该如何执行吗?对于所有页面,breadcrumbs模板文件都是通用的,对于产品来说,它都是在该控制器中设置的。我确信这是显而易见的,我很抱歉。)st思考不正确。谢谢!基本上你做了正确的事情。但是我建议重写帮助程序,而不是编辑核心文件。我将提交并按照说明回答。
 /**
 * Returns product sku.
 *
 * @return string
 * Add this function to get your Sku
 */
public function getProductSku(): string
{
    return $this->catalogData->getProduct() !== null
        ? $this->catalogData->getProduct()->getSku()
        : '';
}

/**
 * Returns breadcrumb json with html escaped Sku
 *
 * @return string
 */
public function afterGetJsonConfigurationHtmlEscaped($subject) : string
{
    return json_encode(
        [
            'breadcrumbs' => [
                'categoryUrlSuffix' => $this->escaper->escapeHtml($subject->getCategoryUrlSuffix()),
                'useCategoryPathInUrl' => (int)$subject->isCategoryUsedInProductUrl(),
                'product' => $this->escaper->escapeHtml($this->getProductSku())
            ]
        ],
        JSON_HEX_TAG
    );
}