'Article Title', * 'description' => 'Article description...', * 'datePublished' => '2024-01-15', * 'dateModified' => '2024-01-20', * 'authorName' => 'John Smith', * 'imageUrl' => 'https://example.com/image.jpg', * 'articleUrl' => 'https://example.com/article' * ]; * include($_SERVER['DOCUMENT_ROOT'] . '/includes/schema/article-schema.php'); */ /** * Generate Article Schema JSON-LD * * @param string $title Article title * @param string $description Article description/excerpt * @param string $datePublished Publication date (Y-m-d format) * @param string $dateModified Last modified date (Y-m-d format) * @param string $authorName Author's name * @param string $imageUrl Featured image URL * @param string $articleUrl Canonical article URL * @param string $category Optional article category * @param array $keywords Optional array of keywords * @return string JSON-LD script tag */ function generateArticleSchema($title, $description, $datePublished, $dateModified, $authorName, $imageUrl, $articleUrl, $category = null, $keywords = []) { $baseUrl = 'https://ukaiautomation.co.uk'; $schema = [ '@context' => 'https://schema.org', '@type' => 'Article', '@id' => $articleUrl . '#article', 'headline' => $title, 'description' => $description, 'url' => $articleUrl, 'datePublished' => $datePublished . 'T09:00:00+00:00', 'dateModified' => $dateModified . 'T09:00:00+00:00', 'author' => [ '@type' => 'Person', 'name' => $authorName, 'url' => $baseUrl . '/about' ], 'publisher' => [ '@type' => 'Organization', '@id' => $baseUrl . '/#organization', 'name' => 'UK AI Automation', 'logo' => [ '@type' => 'ImageObject', 'url' => $baseUrl . '/assets/images/ukaiautomation-logo.svg' ] ], 'image' => [ '@type' => 'ImageObject', 'url' => $imageUrl, 'width' => 1200, 'height' => 630 ], 'mainEntityOfPage' => [ '@type' => 'WebPage', '@id' => $articleUrl ], 'isPartOf' => [ '@type' => 'Blog', '@id' => $baseUrl . '/blog/#blog', 'name' => 'UK AI Automation Blog', 'publisher' => [ '@id' => $baseUrl . '/#organization' ] ], 'inLanguage' => 'en-GB' ]; // Add category if provided if ($category) { $schema['articleSection'] = $category; } // Add keywords if provided if (!empty($keywords)) { $schema['keywords'] = implode(', ', $keywords); } // Add word count estimate based on description length (rough estimate) $schema['wordCount'] = max(500, strlen($description) * 5); return ''; } /** * Generate BlogPosting Schema (more specific than Article) */ function generateBlogPostingSchema($title, $description, $datePublished, $dateModified, $authorName, $imageUrl, $articleUrl, $category = null, $keywords = []) { $baseUrl = 'https://ukaiautomation.co.uk'; $schema = [ '@context' => 'https://schema.org', '@type' => 'BlogPosting', '@id' => $articleUrl . '#blogposting', 'headline' => $title, 'description' => $description, 'url' => $articleUrl, 'datePublished' => $datePublished . 'T09:00:00+00:00', 'dateModified' => $dateModified . 'T09:00:00+00:00', 'author' => [ '@type' => 'Person', 'name' => $authorName, 'url' => $baseUrl . '/about', 'worksFor' => [ '@type' => 'Organization', '@id' => $baseUrl . '/#organization' ] ], 'publisher' => [ '@type' => 'Organization', '@id' => $baseUrl . '/#organization', 'name' => 'UK AI Automation', 'logo' => [ '@type' => 'ImageObject', 'url' => $baseUrl . '/assets/images/ukaiautomation-logo.svg', 'width' => 300, 'height' => 100 ] ], 'image' => [ '@type' => 'ImageObject', 'url' => $imageUrl, 'width' => 1200, 'height' => 630 ], 'mainEntityOfPage' => [ '@type' => 'WebPage', '@id' => $articleUrl ], 'isPartOf' => [ '@type' => 'Blog', '@id' => $baseUrl . '/blog/#blog', 'name' => 'UK AI Automation Blog' ], 'inLanguage' => 'en-GB' ]; if ($category) { $schema['articleSection'] = $category; } if (!empty($keywords)) { $schema['keywords'] = implode(', ', $keywords); } return ''; } /** * Author configurations for the site */ $authorProfiles = [ 'ukaiautomation-team' => [ 'name' => 'UK AI Automation Team', 'role' => 'Data Intelligence Experts', 'description' => 'Our team of certified data professionals and engineers providing expert guidance on AI automation, data pipelines, and business intelligence.' ], 'technical-team' => [ 'name' => 'UK AI Automation Technical Team', 'role' => 'Senior Data Engineers', 'description' => 'Expert engineers specializing in AI Automation technologies, data pipelines, and enterprise data solutions.' ], 'compliance-team' => [ 'name' => 'UK AI Automation Compliance Team', 'role' => 'Data Protection Specialists', 'description' => 'Specialists in GDPR compliance, data protection, and regulatory requirements for data collection.' ] ]; // If $articleData is set, output the schema automatically if (isset($articleData) && is_array($articleData)) { echo generateArticleSchema( $articleData['title'], $articleData['description'], $articleData['datePublished'], $articleData['dateModified'] ?? $articleData['datePublished'], $articleData['authorName'] ?? 'UK AI Automation Team', $articleData['imageUrl'], $articleData['articleUrl'], $articleData['category'] ?? null, $articleData['keywords'] ?? [] ); }