Yii2 페이지에 Schema.org 마크업을 추가하는 방법.
기본적으로 필요한 것은 페이지에 다음과 같은 것을 포함하는 것입니다.
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Movie",
"name": "Avatar",
"director":
{
"@type": "Person",
"name": "James Cameron",
"birthDate": "1954-08-16"
},
"genre": "Science fiction",
"trailer": "../movies/avatar-theatrical-trailer.html"
}
</script>
그러나 우리는 Yii2에서 이와 같은 스크립트를 작성하는 것을 좋아하지 않으므로 다른 PHP 방식으로 작성해 보겠습니다.
레이아웃에서 웹사이트에 대한 몇 가지 일반적인 마크업을 정의할 수 있으므로
@app/views/layouts/main.php
파일의 시작 부분에 다음 스니펫을 추가합니다.<?= \yii\helpers\Html::script(isset($this->params['schema'])
? $this->params['schema']
: \yii\helpers\Json::encode([
'@context' => 'https://schema.org',
'@type' => 'WebSite',
'name' => Yii::$app->name,
'image' => $this->image,
'url' => Yi::$app->homeUrl,
'descriptions' => $this->description,
'author' => [
'@type' => 'Organization',
'name' => Yii::$app->name,
'url' => 'https://www.hogarencuba.com',
'telephone' => '+5352381595',
]
]), [
'type' => 'application/ld+json',
]) ?>
여기서 우리는 Html::script($content, $options)을 사용하여 필요한
type
옵션과 함께 스크립트를 포함하고 Json::encode($value, $options) JSON을 생성합니다. 또한 schema
라는 페이지 매개변수를 사용하여 다른 페이지의 마크업을 재정의할 수 있습니다. 예를 들어, @app/views/real-estate/view.php
에서 우리는 다음을 사용하고 있습니다:$this->params['schema'] = \yii\helpers\Json::encode([
'@context' => 'https://schema.org',
'@type' => 'Product',
'name' => $model->title,
'description' => $model->description,
'image' => array_map(function ($item) {
return $item->url;
}, $model->images),
'category' => $model->type->description_es,
'productID' => $model->code,
'identifier' => $model->code,
'sku' => $model->code,
'url' => \yii\helpers\Url::current(),
'brand' => [
'@type' => 'Organization',
'name' => Yii::$app->name,
'url' => 'https://www.hogarencuba.com',
'telephone' => '+5352381595',
],
'offers' => [
'@type' => 'Offer',
'availability' => 'InStock',
'url' => \yii\helpers\Url::current(),
'priceCurrency' => 'CUC',
'price' => $model->price,
'priceValidUntil' => date('Y-m-d', strtotime(date("Y-m-d", time()) . " + 365 day")),
'itemCondition' => 'https://schema.org/UsedCondition',
'sku' => $model->code,
'identifier' => $model->code,
'image' => $model->images[0],
'category' => $model->type->description_es,
'offeredBy' => [
'@type' => 'Organization',
'name' => Yii::$app->name,
'url' => 'https://www.hogarencuba.com',
'telephone' => '+5352381595',
]
]
]);
여기서 우리는 보다 복잡한 마크업으로 이 페이지의 스키마를 재정의합니다: 제안이 있는 제품.
이렇게 하면 웹사이트의 모든 페이지에 schema.org 마크업이 정의됩니다. 레이아웃에는 기본값이 있고 다른 페이지에서는
$this->params['schema']
값을 다시 정의할 수 있습니다.
Reference
이 문제에 관하여(Yii2 페이지에 Schema.org 마크업을 추가하는 방법.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/glpzzz/how-to-add-schema-org-markup-to-yii2-pages-2kaj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)