Integrating
本文档是描述集成 Yoast SEO 所需技术规范和要求的中心。
自动优化
当软件安装并激活后,必须自动且无需用户干预地满足以下标准。
系统行为
- 网站必须输出并使用“美观固定链接”(人类可读、结构化的 URL)。
- 所有面向公众的 URL、元标签和内容必须在服务器端渲染,在服务器的初始响应中完成。不支持客户端渲染方案。
- 网站必须输出完整且有效的 XML 站点地图。
- 网站必须生成(或修改)robots.txt 文件。
集成
元数据与输出
元标签
所有页面和内容类型都应按照以下标准输出元数据:
结构化数据
所有页面都应按照以下标准输出结构化数据:
- Schema 规范(通用/基础行为)。
- Yoast SEO 的 Schema 规范(Yoast 特定行为)。
控制与分析
对于所有文章、页面和内容类型,用户必须能够:
与我们的 Yoast SEO 内容分析集成
当前设置
目前,我们的许多分析深度集成于 WordPress 或 Shopify 集成中。 在此,我们说明 Yoast SEO 插件如何与(默认)区块编辑器、经典编辑器以及 Elementor 集成。 出于可理解的原因,我们专注于免费开源 WordPress 插件 Yoast SEO 的相关部分。
PHP 集成
在 PHP 端,我们使用 Metabox 的概念来处理内容分析的不同部分。这个命名略有不当,因为它们既用于我们的 Yoast SEO metabox(在经典编辑器和区块编辑器中),也用于 Yoast SEO 侧边栏(在区块编辑器、Elementor 编辑器和 Shopify 应用中)。更多详情请参考文章相关代码和分类法相关代码。我们目前正在解耦 metabox 和侧边栏,请持续关注相关更新。
Elementor 集成展示了如何将这些 Metabox 单元集成到其他页面(本例中是 Elementor 编辑文章页面,参见 Elementor_Edit_Conditional),并实现了 Integration_Interface。它还展示了如何加载额外的脚本和样式(参见 register_hooks)。
JavaScript 集成
在 JavaScript 端,起点是 packages/js/src/post-edit.js(GitHub 链接),它初始化了元框及其行为(initTabs、initAdminMedia、initAdmin、initializeInsights、initializeAiGenerator)、Redux 存储的初始化(initEditorStore),以及与编辑器各部分的集成:
- 与编辑器整体的集成(
initEditorIntegration)。这里有针对默认块编辑器和经典编辑器的实现。这些集成确保侧边栏显示并激活高亮功能。 - 一个更新编辑器数据并链接 Yoast SEO 内容分析的抓取器(
initPostScraper) - 与主要分类元素的集成(
initPrimaryCategory) - 与特色图片元素的集成(
initFeaturedImageIntegration)
在 term-edit.js(GitHub 链接)中,我们为分类术语提供了非常相似的集成,但省略了不适用于术语的元素的集成。
对于与其他编辑器的集成,例如 packages/js/src/elementor.js 中的 Elementor,我们采用了非常相似的方法(参见此代码)。不过存在一些细微差别:
- 我们使用监视器(
initElementorWatcher)而非抓取器来更新编辑器存储。 - YoastSEO 分析应用的设置(参见文章抓取器中的
initializePostAnalysis)在集成中完成,而非在监视器中。 - 有一些额外代码用于向新用户介绍 Yoast SEO 集成(
initializeIntroduction)。 - 侧边栏的渲染通过
initElementorEditorIntegration处理。
未来规划
在(希望不久的)将来,我们期望逐步将分析工具与其各自的后端解耦,并创建一个“独立”编辑器。 我们的目标是使其易于在任何内容编辑环境中实现,只需将其“指向”相关字段(并根据用户设置和控件“连接”相应的后端行为)。
资源
- 一个简单的示例 独立应用,包含可读性和 SEO 分析(支持多个关键词和同义词)以及一个可运行的片段预览(带有替换变量)
- 请注意,目前这排除了我们的包容性语言、洞察力和社交预览检查/功能。
- 关于如何配置和集成独立应用的 文档。
请注意,这些资源应被视为正在进行中的工作,在生产环境中可能不稳定。 如果您遇到问题或错误,我们鼓励您在相应的代码仓库中创建问题,和/或贡献修复和补丁。