Brochure pages are great, unfortunately they don't automatically tell Google what the page represents, if you use Brochure Pages for articles, you can create a Fragment with the following layout (note the article will need to be within a single fragment, the image layout would be a full banner above the article content.)
Create a new fragment layout and populate with:
Fill in the highlighted bits with your own urls, these can be hard-coded as they will stay the same.
You will need to create one variable: <actinic:variable name="ArticleDate" /> called ArticleDate set to fragment and enter the date in the following format on each article YYYY-MM-DD.
Create a new fragment layout and populate with:
Code:
<actinic:block if="%3cactinic%3avariable%20name%3d%22FragmentAnchor%22%20%2f%3e%20!=%20%22%22">
<a name="<actinic:variable name="FragmentAnchor" />"></a>
</actinic:block>
<div class="fragment-text">
<actinic:variable name="FragmentImage" />
<p><strong>By <actinic:variable name='CompanyName' /></strong> | <actinic:variable name="ArticleDate" /></p><br />
<actinic:variable name="FragmentText" />
</div>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "<actinic:variable name='FragmentTitle' />",
"author": {
"@type": "Organization",
"name": "<actinic:variable name="CompanyName" />",
"url": "<actinic:variable name="WebSiteURL" />"
},
"publisher": {
"@type": "Organization",
"name": "<actinic:variable name="CompanyName" />",
"url": "<actinic:variable name="WebSiteURL" />",
"logo": {
"@type": "ImageObject",
"url": "ENTER YOUR LOGO URL HERE"
}
},
"datePublished": "<actinic:block php='true'>
$date = '<actinic:variable name="ArticleDate" />';
echo date('Y-m-d\TH:i:s\Z', strtotime($date . ' 10:00:00')); // Appends 10:00:00 as a default time
</actinic:block>",
"dateModified": "<actinic:block php='true'>
$date = '<actinic:variable name="ArticleDate" />';
echo date('Y-m-d\TH:i:s\Z', strtotime($date . ' 15:00:00')); // Appends 15:00:00 as a default time
</actinic:block>",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "<actinic:variable name='CanonicalPageURL' />"
},
"image": "URL/FOLDER/<actinic:variable name='FragmentImageFileNameRaw' />",
"description": "<actinic:variable name='FragmentTitle' />.",
"articleBody": <actinic:block php='true'>
$sOriginal = '<actinic:variable encoding="perl" name="FragmentText" />';
$sOriginal = preg_replace('/\{.*?\}/', ' ', $sOriginal); // Remove tabber headings
$sOriginal = preg_replace('/\!\!<|>\!\!/', '', $sOriginal); // Remove !!< and >!!
$sOriginal = strip_tags($sOriginal); // Remove HTML tags
$sOriginal = html_entity_decode($sOriginal, ENT_QUOTES | ENT_HTML5, 'UTF-8'); // Convert HTML entities back to characters
$sOriginal = str_replace('&', 'and', $sOriginal); // Replace '&' with 'and'
$sOriginal = preg_replace('/[^a-zA-Z0-9\s.,!?-]/', '', $sOriginal); // Remove any remaining special characters
echo json_encode(trim($sOriginal), JSON_UNESCAPED_UNICODE);
</actinic:block>
}
</script>
You will need to create one variable: <actinic:variable name="ArticleDate" /> called ArticleDate set to fragment and enter the date in the following format on each article YYYY-MM-DD.
Comment