Štruktúrované dáta (JSON-LD)
toJsonLd() zostaví z údajov, ktoré príspevok už má, pole schema.org BlogPosting (alebo Article) pre aktuálny jazyk; renderJsonLd() ho cez šablónu posts::json-ld zabalí do elementu <script type="application/ld+json">. Typ, atribút autora a vydavateľa nastavíte v konfigurácii:
'json-ld' => [
'type' => 'BlogPosting', // or 'Article'
'author-attribute' => 'name', // read from the author model
'publisher' => [
'name' => env('POSTS_PUBLISHER_NAME'),
'logo' => env('POSTS_PUBLISHER_LOGO'),
],
],$post->toJsonLd();
// [
// '@context' => 'https://schema.org',
// '@type' => 'BlogPosting',
// 'headline' => 'Hello world',
// 'description' => 'A short summary',
// 'image' => 'https://example.com/cover.png',
// 'datePublished' => '2026-01-01T12:00:00+00:00',
// 'dateModified' => '2026-01-02T09:30:00+00:00',
// 'author' => ['@type' => 'Person', 'name' => 'Jane Doe'],
// 'publisher' => [
// '@type' => 'Organization',
// 'name' => 'Example Ltd',
// 'logo' => ['@type' => 'ImageObject', 'url' => 'https://example.com/logo.png'],
// ],
// 'mainEntityOfPage' => ['@type' => 'WebPage', '@id' => 'https://example.com/posts/hello-world'],
// 'keywords' => ['eloquent', 'php'],
// 'articleSection' => ['Guides', 'Laravel'],
// ]
$post->renderJsonLd(); // HtmlString: <script type="application/ld+json">{…}</script>Odkiaľ pochádza každý kľúč
| Kľúč | Zdroj |
|---|---|
@context / @type | https://schema.org a json-ld.type |
headline | title s rovnakým záložným jazykom ako $post->title a meta tagy |
description | seo()->metaDescription, inak '' |
image | seo()->ogImage — explicitný og:image, inak titulný obrázok; ak chýba, vynechá sa |
datePublished / dateModified | published_at / updated_at vo formáte ISO-8601 |
author | Person s menom z atribútu json-ld.author-attribute; bez autora či mena sa vynechá |
publisher | Organization z json-ld.publisher.name (+ logo ako ImageObject); bez názvu sa vynechá |
mainEntityOfPage | WebPage s kanonickou URL ako @id — len ak je canonical nastavený |
keywords | názvy tagov príspevku v aktuálnom jazyku, so záložným jazykom |
articleSection | názvy kategórií príspevku v aktuálnom jazyku, so záložným jazykom |
Bezpečný výstup
renderJsonLd() v JSON hexadecimálne escapuje <, >, &, ' a " (JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_HEX_QUOT), takže nadpis, perex, meno autora, tag ani kategória s </script> nedokážu uniknúť z elementu script. Ak ste publikovali posts-views zo staršej verzie, publikujte json-ld.blade.php znova alebo pridajte rovnaké príznaky do svojej kópie.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.