<?php
/**
 * PufferGo Blog Single Layout — 薄路由层。
 *
 * 职责：加载数据 → 确定内容模板变体 → 渲染脚手架 + 变体。
 * 具体的模板内容在 content-templates/blog-single/{variant}.php。
 *
 * @package PufferGo
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

require PUFFERGO_PLUGIN_DIR . '/templates/scaffold/init.php';
require PUFFERGO_PLUGIN_DIR . '/templates/data/class-puffergo-blog-single-data.php';

$data = PufferGo_Blog_Single_Data::from_current_post();

// 将评论数据注入全局 $wp_query，使 have_comments() / wp_list_comments() 可用。
// 此操作放在 layout 层而非 Data 类中，遵循 Data/UI 分离原则。
global $wp_query;
$wp_query->comments        = $data->comments;
$wp_query->comment_count   = count( $data->comments );
$wp_query->current_comment = -1;
$wp_query->max_num_pages   = 1;
$wp_query->found_posts     = 1;

$variant_id    = PufferGo_Template_Loader::get_active_content_template( 'blog-single' );
$template_file = PufferGo_Template_Loader::get_content_template_file( 'blog-single', $variant_id );

require PUFFERGO_PLUGIN_DIR . '/templates/scaffold/document-open.php';
PufferGo_Template_Loader::render_header();

if ( $template_file ) {
	require $template_file;
} else {
	echo '<main class="puffergo-fullpage-layout"><p>' . esc_html__( 'Template not found.', 'puffergo' ) . '</p></main>';
}

PufferGo_Template_Loader::render_footer();
require PUFFERGO_PLUGIN_DIR . '/templates/scaffold/document-close.php';
