أشعر بالفضول حول أفضل الممارسات لتطبيق JSON-LD على موقع لـ schema.org.
إذا كان لدي صفحة بها Article
وأرغب أيضًا في تحديد WebSite
على صفحتي ، فسوف يكون لدي هذا:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "http://www.example.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://www.example.com/search?&q={query}",
"query-input": "required"
}
}
</script>
<!- … -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Article",
"author": "John Doe",
"interactionCount": [
"UserTweets:1203",
"UserComments:78"
],
"name": "How to Tie a Reef Knot"
}
</script>
هل هذا صحيح أم خطأ؟ هل هناك أي فائدة أو حاجة لدمج هذه في نفس البرنامج النصي أو مجموعة من العناصر؟
هذا صحيح. يمكنك الحصول على أكبر عدد ممكن من كتل البيانات (= script
من العناصر) كما تشاء.
فائدة محتملة لاستخدام عنصر script
واحد فقط: فهو يسمح بتسهيل العلاقات بين عناصر متعددة (على سبيل المثال ، إذا قررت استخدام hasPart
أو mainEntity
) ، حيث يجب عليك ببساطة تداخل العناصر.
ولكن جعل هذه العلاقات ممكنًا بالطبع أيضًا عند استخدام كتل بيانات منفصلة ، من خلال الرجوع إلى URI الخاص بالعنصر مع @id
( شكرًا ، @ Gregg Kellogg ).
(كمرجع ، يمكن إضافة عنصرين أو أكثر من عناصر المستوى الأعلى في script
مع @graph
.)
لا فائدة من امتلاك كتل بيانات مفردة أو متعددة ، بخلاف القيود حول كيفية تخزين وإدارة بيانات المخطط في موقع الويب الخاص بك.
على سبيل المثال ، قد تحتاجها منفصلة إذا كانت المكونات المختلفة داخل موقع الويب الخاص بك مسؤولة عن إنشاء كل كتلة بيانات بشكل مستقل. بدلاً من ذلك ، إذا كان موقع الويب الخاص بك قادرًا على إدارة جميع المخططات لصفحة واحدة في مكان واحد ، فقد يكون من الأسهل إدارة كتلة بيانات واحدة وجعلها كعنصر script
واحد.
يمكنك دمج هذه في برنامج نصي واحد عن طريق سرد كل مخطط كصفيف مثل هذا:
<script type="application/ld+json">
[
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "http://www.example.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://www.example.com/search?&q={query}",
"query-input": "required"
}
},
{
"@context": "http://schema.org",
"@type": "Article",
"author": "John Doe",
"interactionCount": [
"UserTweets:1203",
"UserComments:78"
],
"name": "How to Tie a Reef Knot"
}
]
</script>