diff --git a/igny8-wp-plugin/includes/template-functions.php b/igny8-wp-plugin/includes/template-functions.php index e3c85012..39fbab58 100644 --- a/igny8-wp-plugin/includes/template-functions.php +++ b/igny8-wp-plugin/includes/template-functions.php @@ -27,22 +27,25 @@ function igny8_parse_content_sections($content) { $dom = new DOMDocument('1.0', 'UTF-8'); libxml_use_internal_errors(true); - // Load HTML with proper encoding - $dom->loadHTML('' . $content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); + // Wrap content in a div to ensure proper parsing + $wrapped_content = '
' . $content . '
'; + $dom->loadHTML('' . $wrapped_content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); libxml_clear_errors(); $intro_html = ''; $sections = []; $current_section = null; - // Get body node - $body = $dom->getElementsByTagName('body')->item(0); - if (!$body) { + // Get the wrapper div + $xpath = new DOMXPath($dom); + $nodes = $xpath->query('//div/*'); + + if ($nodes->length === 0) { return ['intro' => $content, 'sections' => []]; } // Iterate through all child nodes - foreach ($body->childNodes as $node) { + foreach ($nodes as $node) { // Check if node is an H2 heading if ($node->nodeName === 'h2') { // Save previous section if exists diff --git a/igny8-wp-plugin/templates/single-igny8-content.php b/igny8-wp-plugin/templates/single-igny8-content.php index a91e1e54..956538c6 100644 --- a/igny8-wp-plugin/templates/single-igny8-content.php +++ b/igny8-wp-plugin/templates/single-igny8-content.php @@ -51,6 +51,21 @@ $featured_image_prompt = igny8_get_featured_image_prompt(get_the_ID()); $content = get_the_content(); $content = apply_filters('the_content', $content); $parsed_content = igny8_parse_content_sections($content); + +// Debug logging +if (defined('WP_DEBUG') && WP_DEBUG) { + error_log('IGNY8 Template Debug - Post ID: ' . get_the_ID()); + error_log('Content length: ' . strlen($content)); + error_log('Intro length: ' . strlen($parsed_content['intro'])); + error_log('Sections count: ' . count($parsed_content['sections'])); + if (!empty($parsed_content['sections'])) { + foreach ($parsed_content['sections'] as $idx => $sec) { + error_log('Section ' . ($idx + 1) . ': ' . $sec['heading']); + } + } + error_log('In-article images count: ' . count($in_article_images)); + error_log('Imported images meta: ' . print_r(get_post_meta(get_the_ID(), '_igny8_imported_images', true), true)); +} ?>