#javascript #schema #blogger #json-ld
Вопрос:
В разметке структурированных данных я хочу вставить дату публикации с помощью java script.is есть способ сделать это?
пример схемы;
<script type="application/ld json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Article headline",
"image": [
"https://example.com/photos/1x1/photo.jpg",
"https://example.com/photos/4x3/photo.jpg",
"https://example.com/photos/16x9/photo.jpg"
],
"datePublished": " date variable ",
"author": [{
"@type": "Person",
"name": "Jane Doe",
"url": "http://example.com/profile/janedoe123"
},{
"@type": "Person",
"name": "John Doe",
"url": "http://example.com/profile/johndoe123"
}]
}
</script>
Я должен взять дату внутри тега времени на странице и поместить ее в схему с помощью javascript.
<time datetime="2021-02-24T12:11:00 03:00">2021-02-24T12:11:00 03:00</time>
Комментарии:
1. почему бы вам не использовать
<data:post.date/>
вместоdate variable
2. Я добавляю его в содержимое поста, коды данных здесь не работают.
Ответ №1:
Я удалил datePublished
, потому что это недопустимая разметка, если есть переменные JS, мы должны добавить ее полностью с помощью JS, это допустимо, даже если Javascript отключен.
<script id='structured-data' type="application/ld json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Article headline",
"image": ["https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg"],
"author": [{
"@type": "Person",
"name": "Jane Doe",
"url": "http://example.com/profile/janedoe123"
},{
"@type": "Person",
"name": "John Doe",
"url": "http://example.com/profile/johndoe123"
}]
}
</script>
и чтобы добавить datePublished
, вы можете использовать это
let timeValue = document.querySelector('time').dateTime;
let structuredData = document.getElementById('structured-data');
let parsedSD = JSON.parse(structuredData.innerText);
parsedSD.datePublished = timeValue;
structuredData.innerText = JSON.stringify(parsedSD)
Комментарии:
1. сработало отлично, спасибо