Add json-ld structure 'qa'
This commit is contained in:
parent
474860d546
commit
7f1fea1e09
@ -534,7 +534,7 @@ function includeContainer($containerref)
|
|||||||
* Return HTML content to add structured data for an article, news or Blog Post.
|
* Return HTML content to add structured data for an article, news or Blog Post.
|
||||||
* Use the json-ld format.
|
* Use the json-ld format.
|
||||||
*
|
*
|
||||||
* @param string $type 'blogpost', 'product', 'software', 'organization', ...
|
* @param string $type 'blogpost', 'product', 'software', 'organization', 'qa', ...
|
||||||
* @param array $data Array of data parameters for structured data
|
* @param array $data Array of data parameters for structured data
|
||||||
* @return string HTML content
|
* @return string HTML content
|
||||||
*/
|
*/
|
||||||
@ -542,6 +542,8 @@ function getStructuredData($type, $data = array())
|
|||||||
{
|
{
|
||||||
global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs; // Very important. Required to have var available when running inluded containers.
|
global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs, $pagelangs; // Very important. Required to have var available when running inluded containers.
|
||||||
|
|
||||||
|
$type = strtolower($type);
|
||||||
|
|
||||||
if ($type == 'software')
|
if ($type == 'software')
|
||||||
{
|
{
|
||||||
$ret = '<!-- Add structured data for software post -->'."\n";
|
$ret = '<!-- Add structured data for software post -->'."\n";
|
||||||
@ -551,12 +553,16 @@ function getStructuredData($type, $data = array())
|
|||||||
"@type": "SoftwareApplication",
|
"@type": "SoftwareApplication",
|
||||||
"name": "'.dol_escape_json($data['name']).'",
|
"name": "'.dol_escape_json($data['name']).'",
|
||||||
"operatingSystem": "'.dol_escape_json($data['os']).'",
|
"operatingSystem": "'.dol_escape_json($data['os']).'",
|
||||||
"applicationCategory": "https://schema.org/'.$data['applicationCategory'].'",
|
"applicationCategory": "https://schema.org/'.$data['applicationCategory'].'",';
|
||||||
"aggregateRating": {
|
if (! empty($data['ratingcount'])) {
|
||||||
"@type": "AggregateRating",
|
$ret .= '
|
||||||
"ratingValue": "'.$data['ratingvalue'].'",
|
"aggregateRating": {
|
||||||
"ratingCount": "'.$data['ratingcount'].'"
|
"@type": "AggregateRating",
|
||||||
},
|
"ratingValue": "'.$data['ratingvalue'].'",
|
||||||
|
"ratingCount": "'.$data['ratingcount'].'"
|
||||||
|
},';
|
||||||
|
}
|
||||||
|
$ret .= '
|
||||||
"offers": {
|
"offers": {
|
||||||
"@type": "Offer",
|
"@type": "Offer",
|
||||||
"price": "'.$data['price'].'",
|
"price": "'.$data['price'].'",
|
||||||
@ -700,6 +706,33 @@ function getStructuredData($type, $data = array())
|
|||||||
}
|
}
|
||||||
}'."\n";
|
}'."\n";
|
||||||
$ret .= '</script>'."\n";
|
$ret .= '</script>'."\n";
|
||||||
|
} elseif ($type == 'qa')
|
||||||
|
{
|
||||||
|
$ret = '<!-- Add structured data for product -->'."\n";
|
||||||
|
$ret .= '<script type="application/ld+json">'."\n";
|
||||||
|
$ret .= '{
|
||||||
|
"@context": "https://schema.org/",
|
||||||
|
"@type": "QAPage",
|
||||||
|
"mainEntity": {
|
||||||
|
"@type": "Question",
|
||||||
|
"name": "'.dol_escape_json($data['name']).'",
|
||||||
|
"text": "'.dol_escape_json($data['name']).'",
|
||||||
|
"answerCount": 1,
|
||||||
|
"author": {
|
||||||
|
"@type": "Person",
|
||||||
|
"name": "'.dol_escape_json($data['author']).'"
|
||||||
|
}
|
||||||
|
"acceptedAnswer": {
|
||||||
|
"@type": "Answer",
|
||||||
|
"text": "'.dol_escape_json(dol_string_nohtmltag(dolStripPhpCode($data['description']))).'",
|
||||||
|
"author": {
|
||||||
|
"@type": "Person",
|
||||||
|
"name": "'.dol_escape_json($data['author']).'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}'."\n";
|
||||||
|
$ret .= '</script>'."\n";
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user