我已经创建了一个自定义类别属性title_description
,并显示在管理方面,我可以保存数据。但是当我尝试使用getTitleDescription()
在前端显示值时,它没有显示任何东西。它适用于默认类别属性,如getName()
和getId()
。在我的代码块中,我创建了函数
public function getCurrentCategory()
{
$currentCategory = $this->registry->registry('current_category');
return $currentCategory;
}
在。php文件中我调用
$block->getCurrentCategory()->getTitleDescription()
它在我使用类别集合并循环它的其他页面上工作。但在调用单个类别
时不起作用你可以将你的自定义属性添加到Magento的属性列表中,它会在加载类别时默认加载。
在模块的etc
文件夹中创建一个名为catalog_attributes.xml
的文件。
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/catalog_attributes.xsd">
<group name="catalog_category">
<attribute name="title_description"/>
</group>
</config>
请注意,该组名为catalog_category
,它是自动加载属性的组。这个文件还可以做其他事情,您可以在这里了解。
您也可以尝试添加
public function getTitleDesc()
{
return $this->getCustomAttribute('title_description');
}
,然后调用该函数。注意,在调用缓存之前,应该先刷新缓存。