feat(child-theme): scaffold asterion-bricks v0.1.0
Initial child theme structure inheriting from Bricks parent. Token-driven, RGPD-native, mobile-first foundation ready for component and template work. What's in this commit - style.css: WP theme metadata (Template: bricks, v0.1.0) - functions.php: enqueue cascade tokens -> utilities -> components, defer-loaded main.js, font preload, theme support, image sizes (av-hero 2400x1350, av-card 800x600, av-thumb 400x300), Gutenberg default styles dequeued - theme.json: Gutenberg color/typo palette mirroring tokens - assets/css/tokens.css: full design system per Design Handoff section 2 (brand colors, neutrals, semantics, type scale + line-heights, 8pt spacing, radii, shadows, z-index, motion, prefers-reduced-motion) - assets/css/utilities.css: modern reset + .av-container, .av-skip-link, .av-sr-only, .av-stack, .av-section helpers, opinionated heading scale - assets/css/components.css: index of planned components + buttons (5 variants x 4 sizes per Design Handoff section 3.1) and links - assets/js/main.js: vanilla skeleton with header scroll, IntersectionObserver reveal, count-up, mobile drawer; respects prefers-reduced-motion - inc/cpt.php: register_post_type case_study (slug /customers/) + scenario (slug /scenarios/) + shared 'industry' taxonomy - inc/seo.php: Organization JSON-LD on home; placeholders for Product, Article, FAQPage, BreadcrumbList - assets/fonts/: Inter Variable + Italic WOFF2 self-hosted (RGPD; no Google Fonts CDN). Inter Display @font-face commented — Inter 4+ uses opsz axis from the same file. Out of scope (intentionally deferred) - Component fills: cards, forms, navigation, alerts, modals, tabs (placeholders) - Page templates: home and beyond - Bricks JSON template exports - Schema.org Product / Article / FAQPage / BreadcrumbList implementations Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
60
wp-content/themes/asterion-bricks/inc/seo.php
Normal file
60
wp-content/themes/asterion-bricks/inc/seo.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* Asterion Bricks — SEO module
|
||||
*
|
||||
* Hosts custom Schema.org JSON-LD and any meta-tag overrides specific to
|
||||
* Asterion VR. Most generic SEO (title tags, OG, sitemap) is delegated to
|
||||
* Rank Math or Yoast (per BRIEF section 4).
|
||||
*
|
||||
* Planned :
|
||||
* - Organization schema on home + footer-rendered pages
|
||||
* - Product schema on /solutions/* pages (each tier = a Product)
|
||||
* - Article schema on /insights/<slug>/
|
||||
* - FAQPage schema on /trust/ and conversion templates
|
||||
* - BreadcrumbList schema site-wide
|
||||
*
|
||||
* @package AsterionBricks
|
||||
* @since 0.1.0
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
/**
|
||||
* Inject Organization JSON-LD on the home page.
|
||||
* Safe minimum — extended once logos/SameAs URLs are confirmed.
|
||||
*/
|
||||
add_action('wp_head', function () {
|
||||
if (! is_front_page()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$org = [
|
||||
'@context' => 'https://schema.org',
|
||||
'@type' => 'Organization',
|
||||
'name' => 'Asterion VR',
|
||||
'url' => home_url('/'),
|
||||
'logo' => get_stylesheet_directory_uri() . '/assets/img/logo-asterion-vr.svg',
|
||||
'foundingDate' => '2016',
|
||||
'address' => [
|
||||
'@type' => 'PostalAddress',
|
||||
'addressLocality' => 'Montgermont',
|
||||
'addressRegion' => 'Bretagne',
|
||||
'addressCountry' => 'FR',
|
||||
],
|
||||
'sameAs' => [
|
||||
// TODO : confirm public profiles with client.
|
||||
// 'https://www.linkedin.com/company/asterion-vr/',
|
||||
// 'https://www.youtube.com/@asterionvr',
|
||||
],
|
||||
];
|
||||
|
||||
printf(
|
||||
"<script type=\"application/ld+json\">%s</script>\n",
|
||||
wp_json_encode($org, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
||||
);
|
||||
}, 5);
|
||||
|
||||
// TODO : Product schema for /solutions/<tier>/ pages.
|
||||
// TODO : Article schema for /insights/<slug>/ pages.
|
||||
// TODO : FAQPage schema for /trust/ and conversion pages.
|
||||
// TODO : BreadcrumbList schema site-wide.
|
||||
Reference in New Issue
Block a user