插件窝 干货文章 告别繁琐的 Schema.org 代码:Spatie/schema-org 库的使用体验

告别繁琐的 Schema.org 代码:Spatie/schema-org 库的使用体验

Schema 结构化 数据 生成 467    来源:    2025-03-14

在开发网站时,为了提升搜索引擎优化(SEO)和增强结构化数据的可读性,我们经常需要使用 Schema.org 的标记。然而,手动编写这些结构化数据代码不仅繁琐,而且容易出错。幸运的是,Spatie 提供了一个名为 spatie/schema-org 的 PHP 库,它可以帮助我们轻松生成符合 Schema.org 标准的 JSON-LD 结构化数据。

Spatie/schema-org 库简介

spatie/schema-org 是一个 PHP 库,旨在简化 Schema.org 结构化数据的生成过程。它提供了一个流畅的 API,允许开发者通过 PHP 代码来定义和生成 JSON-LD 格式的结构化数据,而无需手动编写复杂的 JSON 或 HTML 代码。

安装

首先,你需要通过 Composer 安装这个库:

composer require spatie/schema-org

基本使用

假设你想为一个网页生成一个 Person 类型的结构化数据,你可以这样做:

use Spatie\SchemaOrg\Schema;

$person = Schema::person()
    ->name('John Doe')
    ->email('john@example.com')
    ->jobTitle('Web Developer')
    ->telephone('123-456-7890')
    ->url('https://example.com/johndoe');

echo $person->toScript();

这段代码将生成以下 JSON-LD 结构化数据:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "John Doe",
  "email": "john@example.com",
  "jobTitle": "Web Developer",
  "telephone": "123-456-7890",
  "url": "https://example.com/johndoe"
}
</script>

支持的类型和属性

spatie/schema-org 支持 Schema.org 中的大多数类型和属性。你可以通过查看 Schema.org 官方文档 来了解所有可用的类型和属性,然后在代码中使用它们。

例如,生成一个 LocalBusiness 类型的结构化数据:

$business = Schema::localBusiness()
    ->name('Example Corp')
    ->address(Schema::postalAddress()
        ->streetAddress('123 Main St')
        ->addressLocality('New York')
        ->addressRegion('NY')
        ->postalCode('10001')
        ->addressCountry('USA'))
    ->telephone('212-555-1234')
    ->url('https://example.com');

echo $business->toScript();

嵌套结构

spatie/schema-org 还支持嵌套结构。例如,你可以为一个 Recipe 类型添加 ReviewAggregateRating

$recipe = Schema::recipe()
    ->name('Chocolate Chip Cookies')
    ->author(Schema::person()->name('Jane Doe'))
    ->review(Schema::review()
        ->author(Schema::person()->name('John Smith'))
        ->reviewRating(Schema::rating()->ratingValue(5)))
    ->aggregateRating(Schema::aggregateRating()
        ->ratingValue(4.5)
        ->reviewCount(120));

echo $recipe->toScript();

优势

  1. 简化代码:通过流畅的 API,你可以轻松生成复杂的结构化数据,而无需手动编写 JSON-LD。
  2. 减少错误:由于代码是类型安全的,减少了手动编写时可能出现的错误。
  3. 易于维护:使用 PHP 代码生成结构化数据,使得维护和更新变得更加容易。

总结

spatie/schema-org 是一个强大的工具,特别适合那些需要在 PHP 项目中生成 Schema.org 结构化数据的开发者。它简化了代码编写过程,减少了错误,并且使得维护变得更加容易。如果你正在寻找一种高效的方式来生成结构化数据,不妨试试这个库。

希望这篇文章能帮助你更好地理解和使用 spatie/schema-org 库。如果你有任何问题或需要进一步的帮助,请随时提问!