关于Joomla中的微数据
几个月前,我写了一篇关于我的Google Summer of Code项目的文章,该项目的目标是向Joomla CMS添加微数据语义。现在让我们更详细地看看这个项目的状态,看看都做了些什么。
您可以在Joomla杂志中找到我关于Google Summer of Code项目的上一篇文章: 改进Joomla!前端语义与无障碍性
如果您不熟悉微数据,请观看这个快速的一分钟视频: https://www.youtube.com/watch?v=A-kX0Aut-18
项目状态
这类项目涉及大量的网络标准研究以及持续的测试以保持有效的HTML。微数据库还需要具有灵活性、快速、轻量且易于开发者使用的直观性。因此,我必须承认,为了保持上述列出的属性,库的设计架构已经更改多次。
因此,经过一个月的研究和测试,库最终被合并到Joomla CMS主分支中,您将从下一个Joomla 3.2版本开始使用。如果您是开发者,您可以使用该库在您的扩展中实现微数据语义。
如果您想更详细地了解,您可以在以下位置找到该库: libraries/joomla/microdata
如何使用JMicrodata库?
要使用新的微数据语义库,您需要在您的扩展中创建库的实例。
示例
$microdata = new JMicrodata('Article');
假设我们有一个以下字符串
Written by Alexandru Pruteanu
我们需要添加一个作者属性
echo 'Written by' . $microdata->content(“Alexandru Pruteanu”)->property('author')->fallback('Person', 'name')->display();
库将显示
Written by <span itemprop='author' itemscope itemtype='https://schema.org/Person'> <span itemprop='name'> Alexandru Pruteanu </span> </span>
如果当前作用域不是'文章',例如一个'产品'作用域,并且当前作用域没有作者属性会发生什么?
那么它将回退到
<span itemscope itemtype='https://schema.org/Person'> <span itemprop='name'> Alexandru Pruteanu </span> </span>
如果我们想禁用微数据语义输出?
您可以直接禁用微数据输出
$microdata->enable(false);
库将显示以下内容
Written by Alexandru Pruteanu
有关更多文档,请查看此Gist: https://gist.github.com/PAlexcom/6339949
或者直接联系我,我一定会和你聊聊 ;)
那么在Joomla CMS中的实现情况如何呢?
这只是一个需要接受的提案,下面显示的内容在官方Joomla CMS版本中尚未实现。
当我告诉你这个时,我正在努力在CMS中实现,已经有一个拉取请求,但由于涉及到CMS中的大量更改,需要更多的测试。
以下是一个实现了微数据语义的实时网站: Joomla Live Site with Microdata Semantics
以下是谷歌丰富片段工具可以提取的内容
点击此处进行实时测试, (如果不起作用,请刷新或按'预览')
但在Joomla CMS管理区域中是如何实现的呢?
您可以从全局配置中启用/禁用微数据语义。
示例:管理 → 全局配置 → 网站(选项卡)→ SEO设置
您可以从文章编辑选项中启用/禁用微数据语义输出,还可以选择范围。
目前存在哪些问题?
好吧,目前最大的问题是你不能从微数据切换到RFDa或微格式,甚至不能更改词汇表。因此,我们需要找出如何实现这一目标的方法。
在撰写本文时,存在一个需要有一个JMicrodata全局实例的问题,否则一切都将崩溃。
结论
对我来说,与Joomla团队/开发者合作并成为Google Summer of Code项目的一部分是一段令人惊叹且有趣的经历。我学到了很多,特别是如何维护开源项目和来自世界各地的人们是如何合作的。但即使GSoC项目已经结束,我也想继续在这个项目上工作,并添加新功能。如果你在使用库时遇到任何问题,有任何创新的想法,或者如果你想帮我,请告诉我,我是Alexandru Pruteanu,我一定会很高兴和你聊聊 ;)
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人意见或经验,可能不符合Joomla项目的官方立场
通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务
评论