3分钟阅读时间 (691字)

在Joomla中使用Microdata?

What about Microdata in Joomla?

几个月前,我写了一篇关于我的Google Summer of Code项目的文章,该项目旨在在Joomla CMS中添加microdata语义。现在让我们更深入地看看这个项目的状态,看看都做了些什么。

您可以在Joomla杂志中找到我之前关于我的Google Summer of Code项目的文章: 改进Joomla!前端语义与可访问性

如果您不熟悉microdata,请观看这个快速的一分钟视频: https://www.youtube.com/watch?v=A-kX0Aut-18

项目状态

这类项目涉及大量的对网络标准的调研和持续的测试以保持有效的HTML。microdata库还需要灵活、快速、轻量且易于开发者使用。因此,我必须承认,为了保持上述列出的属性,库的设计架构已经改变过多次。

因此,经过一个月的研究和测试,库最终被合并到Joomla CMS的主分支中,您将在下一个Joomla 3.2版本中能够使用它。如果您是开发者,您可以使用这个库在您的扩展中实现microdata语义。

如果您想更深入地了解,您可以在这里找到库: libraries/joomla/microdata

如何使用JMicrodata库?

要使用新的microdata语义库,您需要在您的扩展中创建库的一个实例。

示例

		$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语义输出?
您可以简单地禁用microdata输出

		$microdata->enable(false);
	

库将显示以下内容

		Written by Alexandru Pruteanu
	

有关进一步文档,请参阅此Gist: https://gist.github.com/PAlexcom/6339949
或者直接联系我,我肯定会和你谈谈 ;)

在 Joomla CMS 中如何实现呢?

这只是需要接受的一个建议,以下展示的内容在官方 Joomla CMS 版本中尚未实现。

在我告诉你这个信息的同时,我还在处理 CMS 的实现工作,已经有了一个 pull request,但由于涉及 CMS 中的大量更改,还需要更多的测试。

以下是一个已经实现了微数据语义的在线网站:带有微数据语义的 Joomla 在线网站

以下是 Google Rich snippets 工具可以提取的内容

Google Rich Snippets Test Tool

点击这里进行实时测试, (如果不起作用,请刷新或按 '预览')

那么在 Joomla CMS 管理区域中是如何实现的呢?

您可以从全局配置中启用/禁用微数据语义。

示例:管理 → 全局配置 → 网站(选项卡)→ SEO 设置

Microdata settings in Joomla Administration Global Configuration
您可以从文章编辑选项中启用/禁用微数据语义输出,并选择范围。

Microdata settings in com_content

当前有哪些问题?

目前,最大的问题是您不能从 微数据 切换到 RDFA微格式,甚至不能更改 词汇表。因此,我们需要找到一种方法来实现这一点。
在撰写本文时,存在一个问题,即需要有一个 JMicrodata 全局实例,否则一切都将崩溃。

结论

对我而言,与 Joomla 团队/开发者合作并成为 Google Summer of Code 项目的一部分是一种极好且有趣的经验。我学到了很多东西,特别是如何维护开源项目以及来自世界各地的人们如何合作。但即使 GSoC 项目已经结束,我也希望继续在该项目上工作并添加新功能。如果您在使用库时遇到任何问题,有任何创新想法或想要帮助,请告诉我,我是 Alexandru Pruteanu,我一定会很高兴与您交谈 ;)

 

一些发表在 Joomla 社区杂志上的文章代表了作者对特定主题的个人观点或经验,可能并不与 Joomla 项目的官方立场一致

0
要 SEO 还是不要 SEO
 

评论

已经注册? 在此登录
尚未发表评论。成为第一个发表评论的人

通过接受,您将访问 https://magazine.joomla.net.cn/ 之外的第三方外部服务