NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Posts for Laravel

SEO meta tagy

meta_title a meta_description sú preložiteľné stĺpce; všetky ostatné SEO polia sú v nepreložiteľnom balíku seo na príspevku. Nastavíte ich cez DTO SeoData:

use RoundlyConsulting\Posts\DataTransferObjects\SeoData;
use RoundlyConsulting\Posts\Facades\Posts;

Posts::seo($post, new SeoData(      // saves; $post->setSeo($data) only sets the attributes
    metaTitle: 'Custom title',
    canonical: 'https://example.com/posts/hello-world',
    ogImage: 'https://example.com/cover.png',
    robots: 'index,follow',
));

Posts::seo() zavolá setSeo() modelu a príspevok uloží. setSeo() zapíše metaTitle / metaDescription (ak nie sú null) ako preklad v aktuálnom jazyku a celý balík seo nahradí ostatnými poľami DTO — odovzdajte preto všetky polia, ktoré chcete zachovať. Sám o sebe neukladá:

// The model form sets the attributes without saving:
$post->setSeo(new SeoData(ogImage: 'https://example.com/cover.jpg'));
$post->save();

Vykreslenie tagov

<head>
    {!! $post->renderMetaTags() !!}   {{-- <title>, description, canonical, og:*, twitter:*, robots --}}
    {!! $post->renderJsonLd() !!}     {{-- <script type="application/ld+json"> BlogPosting/Article --}}
</head>

renderMetaTags() vykreslí šablónu posts::meta a vypíše len tagy, ktoré majú hodnotu, každý escapovaný:

<title>Custom title</title>
<meta name="description" content="A short summary">
<meta name="robots" content="index,follow">
<link rel="canonical" href="https://example.com/posts/hello-world">
<meta property="og:title" content="Custom title">
<meta property="og:description" content="A short summary">
<meta property="og:type" content="article">
<meta property="og:image" content="https://example.com/cover.png">
<meta property="og:site_name" content="Example Blog">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@example">

Doplnenie hodnôt

seo() vráti SeoData so zlúčenými predvolenými hodnotami z konfigurácie a doplnením. Meta polia používajú rovnaký záložný jazyk ako $post->title: najprv meta hodnotu alebo nadpis v aktuálnom jazyku, potom v záložnom, potom v ľubovoľnom — príspevok s nadpisom len v angličtine tak na slovenskej stránke stále vykreslí <title> aj headline v JSON-LD:

$seo = $post->seo();     // SeoData with config defaults + fallbacks merged

$seo->metaTitle;         // meta_title → title, current locale → fallback → any locale
$seo->metaDescription;   // meta_description → perex, same locale chain
$seo->ogImage;           // explicit og:image → featured image URL → null
$seo->twitterCard;       // explicit → posts.seo.default-card
PoleZdroj hodnoty
metaTitlemeta_title → title v aktuálnom jazyku, potom tá istá dvojica v záložnom jazyku, potom v ľubovoľnom → null
metaDescriptionmeta_description → perex, po rovnakom reťazci jazykov → null
canonicallen uložená hodnota
twitterCreatorlen uložená hodnota
ogTitleuložená hodnota → metaTitle
ogDescriptionuložená hodnota → metaDescription
ogImageuložená hodnota → URL titulného obrázka vo variante media.og_variant, ak už je vygenerovaný, inak originálu (ak je zapnuté media.seo_og_image) → null
ogTypeuložená hodnota → article
twitterCarduložená hodnota → seo.default-card
twitterSiteuložená hodnota → seo.twitter-site
robotsuložená hodnota → seo.default-robots
ogSiteNameuložená hodnota → seo.site-name

Úprava vzhľadu

Publikujte posts-views a upravte meta.blade.php, ktorá dostáva $seo (SeoData).

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 kryptomien

Odoslaní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.