Я на самом деле не кодер, я сломался и пытаюсь заработать деньги с помощью интернет-магазина. Я запускаю интернет-магазин с помощью OpenCart 2.3.0.2 и пытаюсь оптимизировать его для SEO перед запуском. На этот раз я пытаюсь улучшить его с помощью разметки структурированных данных. Поскольку у меня нет финансовых возможностей (пока) покупать модули, я делаю это сам и изучаю, как это работает.
Я пытаюсь создать свой собственный модуль схемы для продукта для OpenCart 2.3, но застрял в части обзора. JSON-LD полностью построен и протестирован.
Я пытался использовать разметку JSON-LD, узнал об этом на этой странице и с форума OpenCart, вот фрагмент проблемного кода (часть обзора):
"review": [
<?php foreach($reviewss as $review) { ?>
{
"@type": "Review",
"author": "<?php echo $review['author'];?>",
"datePublished": "<?php echo $review['date_added'];?>",
"description": "<?php echo $review['text'];?>",
"name": "<?php echo $review['author'];?>",
"reviewRating": {
"@type": "Rating",
"bestRating": "5",
"ratingValue": "<?php echo $review['rating'];?>",
"worstRating": "1"
}
}
<?php } ?>
]
}
Которые производят вывод:
"review": [
{
"@type": "Review",
"author": "A Parker",
"datePublished": "16/12/2018",
"description": "Wow! Product arrive yesterday and it's well packed. The product is well-designed.",
"name": "A Parker",
"reviewRating": {
"@type": "Rating",
"bestRating": "5",
"ratingValue": "5",
"worstRating": "1"
}
} #there should be a comma here after "}".
{
"@type": "Review",
"author": "David Lay",
"datePublished": "15/12/2018",
"description": "Great product! Works as advertised.",
"name": "David Lay",
"reviewRating": {
"@type": "Rating",
"bestRating": "5",
"ratingValue": "5",
"worstRating": "1"
}
}
]
}
Here's the correct one. Tested using Google Structured Data Markup.
"review": [
{
"@type": "Review",
"author": "A Parker",
"datePublished": "16/12/2018",
"description": "Wow! Product arrive yesterday and it's well packed. The product is well-designed.",
"name": "A Parker",
"reviewRating": {
"@type": "Rating",
"bestRating": "5",
"ratingValue": "5",
"worstRating": "1"
}
},
{
"@type": "Review",
"author": "David Lay",
"datePublished": "15/12/2018",
"description": "Great product! Works as advertised.",
"name": "David Lay",
"reviewRating": {
"@type": "Rating",
"bestRating": "5",
"ratingValue": "5",
"worstRating": "1"
}
}
]
}
Я не уверен, как это называется на самом деле, я думаю, проблема - LOOP. Для разделения отзыва на каждый обзорный пост должна быть запятая. Код отлично работает, если есть только 1 отзыв.
Должно быть условие для вставки запятой, например, если отзывов больше одного, то поставить запятую, если нет, то без запятой. Тогда, конечно, последний элемент не должен иметь запятой.
Я рвал на себе волосы, чтобы решить эту проблему. Я не знаю PHP, но я очень старался, читая форум, на тему циклов и условий if/then, foreach
и т. д. Но с трудом понимаю.
Я не знаю, как задать вопрос, возможно, Как зациклить публикацию с обзором продукта в OpenCart 2.3 для схемы JSON-LD? Любая помощь приветствуется.