You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决PrestaShop WYSIWYG编辑器清除Microdata的问题?

PrestaShop CMS页面添加Schema.org结构化数据的解决办法
  • 修改WYSIWYG编辑器的允许属性配置
    PrestaShop默认使用TinyMCE编辑器,它会过滤非标准HTML属性。找到编辑器配置文件(比如config/tinymce/tinymce.config.js),修改extended_valid_elements项,把需要的Microdata属性加入白名单:
extended_valid_elements: 'div[itemscope|itemtype|itemprop],span[itemprop],meta[itemprop|content]'

保存配置后刷新后台,再粘贴带Microdata的HTML代码,属性就不会被清除了。

  • 直接修改CMS页面模板文件
    绕开WYSIWYG编辑器,直接在主题模板中插入结构化数据。找到主题的CMS页面模板themes/你的主题/templates/cms/page.tpl,在合适位置添加带Microdata的标签,比如:
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
    {$cms.content nofilter}
</div>

如果只想给特定CMS页面添加,还可以通过页面ID判断:

{if $cms.id == 5}
    <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
        {$cms.content nofilter}
    </div>
{else}
    {$cms.content}
{/if}

nofilter修饰符能确保内容里的HTML不被模板引擎过滤。

  • 用自定义模块注入结构化数据
    写一个简单的PrestaShop模块,通过钩子在CMS页面加载时插入Microdata。比如在模块的主文件里添加钩子函数:
public function hookDisplayCMSContent($params)
{
    // 替换成目标CMS页面的ID
    if ($params['cms']->id == 5) {
        return '<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">' . $params['cms']->content . '</div>';
    }
    return '';
}

安装模块后,指定的CMS页面就会自动带上对应的结构化数据。

内容的提问来源于stack exchange,提问作者Maxence Boudaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:10:37