ID);
// 1.3 Open Graph Output
// og:title
// 1. Manual OG title
// 2. SEO title (from Core Meta logic)
// 3. Post title
$og_title = !empty($meta['og_title']) ? $meta['og_title'] : Helpers::get_seo_title($post);
// Note: Helpers::get_seo_title returns (Manual SEO > Post Title). So this logic covers 2 and 3.
// og:description
// 1. Manual OG description
// 2. SEO description
// 3. Auto summary
$og_desc = !empty($meta['og_description']) ? $meta['og_description'] : Helpers::get_seo_description($post);
// Note: Helpers::get_seo_description returns (Manual SEO > Excerpt > Auto). Covers 2 and 3.
// og:url
// Emission required. Logic: Permalink (safest default).
// 1.2 canonical logic uses manual override. Should OG match?
// Usually OG URL is the canonical URL. PRD doesn't specify override for OG URL.
// But 3.3 says "wp_head for all meta output".
// I will use Canonical URL logic for consistency.
$og_url = Helpers::get_canonical_url($post);
// og:type
// Default: article
$og_type = 'article';
// og:image
// 1. Manual OG image
// 2. Featured image
// 3. Global Default
// 4. Omit
$og_image = Helpers::get_og_image($post);
echo "\n\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
if (!empty($og_image)) {
echo '' . "\n";
}
}
}